Skip to content

11. 委派模式

Landy.Liu edited this page May 18, 2019 · 1 revision

11.1 概念

不属于23种设计模式之一,是面向对象设计模式中常用的一种模式,有点像静态代理模式,又有点像策略模式,它是两种设计模式的组合体,常见于Spring源码的实现中。

11.2 特点

  1. 持有被委托人的引用,只关心结果,不关心过程。
  2. 相当于静态代理中的特殊情况,全权代理
  3. 代理模式注重的是过程,委派模式注重的是结果
  4. 策略模式注重是可扩展(外部扩展),委派模式注重内部的灵活和复用
  5. 委派的核心:就是分发、调度、派遣

11.3 应用场景

这种模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性;并且调用B中的方法,属性就是调用A中同名的方法和属性。B好像就是一个受A授权委托的中介。第三方的代码不需要知道A的存在,也不需要和A发生直接的联系,通过B就可以直接使用A的功能,这样既能够使用到A的各种功能,又能够很好的将 A 保护起来了,一举两得。

项目经理:在老板眼里,他只负责干活,实际上是做类似于调度的工作,任务分配等。

重要特征:项目经理在分配任务之前,需要做一个权衡,类似于策略模式。

在Spring中,以Delegate结尾的类,以Dispatcher结尾的类基本上都是委派模式实现。