知微坚果的拾光小镇 知微坚果的拾光小镇
首页
随笔
  • Golang

    • 基础
    • 第三方库
  • 前端

    • Vue
    • Flutter
  • 开发工具
  • 系统工具
  • Timer (opens new window)
  • 时间线
  • 关于
GitHub (opens new window)

知微坚果

行者常至,为者常成
首页
随笔
  • Golang

    • 基础
    • 第三方库
  • 前端

    • Vue
    • Flutter
  • 开发工具
  • 系统工具
  • Timer (opens new window)
  • 时间线
  • 关于
GitHub (opens new window)
  • 设计模式之委托模式

  • 架构
  • 设计模式
知微坚果
2020-12-10
目录

设计模式之委托模式

首先我们需要知道,在实际开发中,往往并不会完全固定的遵循某一类设计模式,而是参照多种设计模式,基本原则,进行特定的设计。所以我们在实际中可以同时在代码中看见多种设计模式的影子,并且很难完全区分使用的是某一种特定的设计模式。

# 基本概念

委托: Delegete ,也叫作委派。

委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。

委派模式不属于23种gof,委派模式就是将一个类下达的任务交给另外一个类去做,双亲委派机制其实就是这个道理,当某个类加载器需要执行某个类时先交给父类看父类是否能够执行。

# 解释

委托模式是一项基本技巧,许多其他的模式,如 状态模式、策略模式、访问者模式 本质上是在更特殊的场合采用了委托模式。

委托模式使得我们可以用聚合来替代继承,它还使我们可以模拟mixin。

委托是指在一个类中包含了其它的类或者接口,通过这借助多态,实现一些动态行为,委托只能算是设计模式中的一部分,代理中有用到委托的,在策略模式中也可能会用到。

# 委派模式的作用:

基本作用就是负责任务的调用和分配任务

# 和策略模式的对比

策略模式在实际业务开发中,采用的实际上就是有委派的影子,可以看做一种特定场景的实现。

委派模式不仅仅在策略模式中体现,双类加载亲委派机制这种也是委派。

代理模式也是一种委派的实现。

# 经验

一般Delegate,Dispatcher结尾的都是委派。

# 总结

总而言之:只要不是自己去做实际的事情,是加上都包含了委托/委派的基本思想。 这也是为什么委派模式十分常见但却不在23种设计模式之中的一个原因。

# 扩展

许多编程语言,编程框架都有专门的Delegete,可以进一步对比学习了解

比如C#,Kotlin

#Java#设计模式
更新时间: 12/4/2022, 6:55:46 PM
最近更新
01
SpringBoot3.0快速上手
12-07
02
Spring事务管理源码分析
12-06
03
Golang工程结构最佳实践
12-04
更多文章>
Theme by Vdoing | Copyright © 2022-2022 知微坚果 | 拾光小镇
蜀ICP备17001150号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式