意图: 将一个类的接口转换成客户希望的另外一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
结构:
图7 多重继承实现方式.
图8 对象组合方式实现
说明: Adapter中的Request实现调用了Adaptee中的方法. 怎样使得Adapter可以调用Adaptee中的方法? 使用继承或者组合的方式即可.
http://blog.csdn.net/bagboy_taobao_com/article/details/11618941
http://blog.csdn.net/bagboy_taobao_com/article/details/11619037
意图: 将抽象部分与它的实现部分分离,使它们都可以独立地变化
结构:
图9
图10
说明: 该模式的目的是将抽象部分与它的实现部分分离,使它们都可以独立地变化.
http://blog.csdn.net/bagboy_taobao_com/article/details/11619127
http://blog.csdn.net/bagboy_taobao_com/article/details/11619169
意图: 将对象组合成树形结构以表示"部分-整体"的层次结构. Composite使得用户对单个对象和组合对象的使用具有一致性.
结构:
图11
说明: 单个对象和组合对象的使用具有一致性, 看结构图..
http://blog.csdn.net/bagboy_taobao_com/article/details/11768899
意图: 动态地给一个对象添加一些额外的职责. 就增加功能来说, Decorator模式相比生成子类更为灵活.
结构:
图12
说明: Decorator将请求转发给它的Component对象, 并有可能在转发请求前后执行一些附加的动作..
http://blog.csdn.net/bagboy_taobao_com/article/details/11769115
意图: 为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口, 这个接口使得这一子系统更加容易使用..
结构:
图13
说明: 1. 子系统组件的复杂调用由Facade来负责, Facade提供一个统一的简单的接口给客户使用, Facade接口在调用子系统接口.
2. 就是在客户与子系统之间增加了一层, 增加的这一层简化了客户的调用, 客户与子系统也松耦合了.
http://blog.csdn.net/bagboy_taobao_com/article/details/11781539
意图: 运用共享技术有效地支持大量细粒度的对象..
结构:
图14
http://blog.csdn.net/bagboy_taobao_com/article/details/11781871
http://blog.csdn.net/bagboy_taobao_com/article/details/11782175
意图: 为其他对象提供一种代理以控制对这个对象的访问.
结构:
图15
说明:Adapter为它所适配的对象提供了一个不同的接口. 相反, 代理提供了与它的实体相同的接口. 然而, 用于访问保护的代理可能会拒绝执行实体会执行的操作, 因此,它的接口实际上可能只是实体接口的一个子集.
http://blog.csdn.net/bagboy_taobao_com/article/details/11782345