Adapter、Decorator和Proxy
这三个模式具有很强的相似性,以下从接口、功能和实现时的工作三个方面进行比较:
1.适配器和适配对象使用不同的接口,基本上实现同样的功能。适配器的主要工作是接口转换。
2.装饰器和装饰对象使用相同的接口,在装饰对象的基础上增加新功能。装饰器的工作是实现这些新功能。
3.代理和代理对象的接口相同,基本上实现同样的功能。代理的工作是帮助吸收一些额外的要求,如节约内存、增加访问控制、突破软件/硬件通信障碍等。
Composite
组合模式提供了实现树形结构的标准方法,利用者可以用相同的观点处理树形数据结构上的节点。
Bridge
桥接模式将接口类和实现类分离,使本来需要m×n的继承结构,转变为m+n的继承结构。
Flyweight
享元模式提供了使用者之间共享数据的标准手段。
Facade
外观模式为子系统提供了功能足够满足需求且更加方便易用的界面类。