Posted on 2015-05-09 13:53
Onway 阅读(234)
评论(0) 编辑 收藏 引用 所属分类:
设计模式
1,适配器
目的是为了重用已有的类,让事先没有互相关系的类协同工作。
大致做法是通过让adapter继承target类,将来自client对target的请求转发给adaptee。
可能发生在重构,扩展等相对后期的阶段。
分为类适配器和对象适配器;类适配器多采用多重继承。
![](/images/cppblog_com/onway/设计模式/41.png)
2,桥接
目的是分离接口和实现,以提供了一套稳定的接口,并且可以接口和实现独立变化。
结构和实现没有继承关系,接口类引用实现类的实例,并将其请求转发。
通常发生在设计阶段,比较明确的知道会有多种不同实现。
![](/images/cppblog_com/onway/设计模式/421.png)
![](/images/cppblog_com/onway/设计模式/422.png)
3,组成
将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。![](/images/cppblog_com/onway/设计模式/43.png)
4,装饰
动态地给一个对象添加一些额外的职责。
装饰类和被装饰类都有一个共同的接口,装饰类维持一个被装饰对象的引用(通常在构造函数传入),将客户的请求转发给被装饰对象,并在转发前后添加额外的职责。
装饰模式不改变接口。
![](/images/cppblog_com/onway/设计模式/44.png)
5,外观
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
引入的Facade对象,为子系统中较一般的设施提供了一个单一而简单的界面。
也就是提供一个简单易用的类。
![](/images/cppblog_com/onway/设计模式/45.png)
6,享元
运用共享技术有效地支持大量细粒度的对象。
使用一个factory管理维护一个共享对象池。难点是对象的外部和内部状态的划分。
![](/images/cppblog_com/onway/设计模式/46.png)
7,代理
为其他对象提供一种代理以控制对这个对象的访问。
代理和实体一般都会有相同的接口。
在实现上跟装饰模式比较相似。
![](/images/cppblog_com/onway/设计模式/47.png)