结构型模式总结
1、Adapter与Bridge:
共同点:它们都给另一对象提供了一定程度上的间接性,有利于系统的灵活。都涉及到从自身以外的一个接口向这个对象转发请求。
不同点:Adapter模式主要考虑2个已有接口不匹配的问题,它完全不考虑接口的实现,也不考虑它们各自如何演化。Adapter模式在类已经设计好以后实施。Bridge模式则对抽象接口与它的(可能是多个)实现部分进行桥接,使得你可以随意修改实现它的类而仍表现出一个稳定的接口。Bridge模式在设计类之前实施。
2、Composite、Decorator和Proxy
Composite与Decorator在结构图上相似,Decorator可以被看成是一个只有一个组合的Composite。
而它们的目的截然不同:Decorator旨在使你能够不需要生成子类即可给对象添加职责。Composite旨在构造类,使得多个相关的对象能够以统一的方式处理,多重对象可以被当作一个对象处理。
Decorator与Proxy的实现部分都保留了一个指向另一个对象的指针,它们向这个对象转发请求。
在Proxy模式中,实体定义了关键的功能,而Proxy提供(或拒绝)对它的访问。在Decorator模式中,组件仅提供了部分功能,而一个或多个Decorator负责完成其他的部分。