设计模式-委派模式

Delegate Pattern 又叫委托模式,是一种面向对象的设计模式,允许对象组合实现与及城乡同的代码重用。它的基本作用就是负责任务的调用和分配,是一种特殊的静态代理,可以理解为全权代理。

代理模式注重过程,委派模式注重结果。委派模式属于行为模式,且不适于GOF23中设计模式之中。

委派模式有三个参与角色:

  • 抽象任务角色
  • 委派者角色
  • 具体任务角色

类图:

优点:通过任务委派能够将一个大型的任务细化,然后通过统一管理这些子任务的完成情况实现任务的跟进,能够加快任务执行的效率。

缺点:需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下,可能需要进行多重委派,容易造成紊乱

举例:

1、JDK有一个典型的委派,那就是类加载时的双亲委派机制,

2、在Spring IoC中,在调用doRegisterBeanDefinitions()方法时,会设置BeanDefinitionParserDelegate类型的Delegate对象给this.delegate,并将这个对象作为参数传给parserBeanDefinitions(root,this.delegate)中,然后主要的解析工作就是通过Delegate完成的