一、adaptor模式
从上图可看出,adaptor设计模式通过增加一个接口,将已存在的子类封装起来,client面向接口编程,从而隐藏了具体子类。
该设计模式解决了类之间接口不兼容的问题。
上图是不使用该设计模式的情况,从而导致了委派的不兼容。
上图是使用了该设计模式的代码。
二、strategy设计模式
需要解决的问题:有多种不同的算法来实现同一个任务,但需要client根据需要动态切换算法,而不是写死在代码里。
解决方法:为不同的实现算法构造抽象接口,利用delegation,运行时动态传入client倾向的算法类实例。
上图就是strategy设计模式的简图。
使用该设计模式时,delegation是必须要灵活使用的。