委派模式
根据文档可知,委派模式和代理模式相似,但代理模式注重过程,而委派模式更注重结果(思想上的一点差异)

委派模式的基本作用就是负责任务的调度和分配任务 场景:
- 类加载的双亲委派机制
- SpringMVC的DispatcherServlet
- Spring中bean解析的BeanDefinitionParserDelegate
策略模式

策略模式是对算法的封装。定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换 优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。 缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。
场景:
- Spring中Aop代理策略createAopProxy(下文讲解)
- Spring的对象实例化策略InstantiationStrategy
两者区别:
- 委派模式中委派者和被委派者实现了同一个接口,
- 策略模式中容器只是算法策略的选择切换所在,不需要实现策略接口
小故事理解:
前几天公司所在的地方要拆迁,所以只能搬办公室,大家都得帮忙不是,经理也要去深圳出差,就直接告诉HR让她负责,于是HR就开始分配任务,男生负责搬运东西,女生负责清洁,其他的同学就干干杂物,所以搬家公司一把东西搬到新办公室,大家就听HR指挥了,HR看到灯管要换一下,那么这个任务就要交给男生了,看到玻璃脏了,那么这个任务就要交给女生。
到下午的时候,HR收到了中通快递的短信,可能买了一些新办公室需要的东西,要去快递柜那边拿,我刚好闲着,于是HR把她的短信给我,让我领一下。到了那边,看到快递柜是很大的那种分区的,有中通快递的,有申通快递的,但是取货机是只有一个的,我输了取货码,然后跑到中通快递所在的区,”呯”!,果然这边的快递门开了,好神奇!
分析:
- 分配任务中,HR是委派者,男生女生是被委派者
- 去取快递时,HR是目标对象,我是代理对象,短信是目标对象的引用
- 取快递中,取货机是容器,不同快递的取货码是不同的算法策略
