结构型模式
结构型模式涉及到如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现;结构型对象模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法;
适配器模式
A(Adapter):将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;[Target、Adaptee、Adapter]
桥接模式
B(Bridge):将抽象部分接口与它的实现部分分离,使它们都可以独立变化;[Abstract、Implement]
组合模式
C(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得对单个对象和和组合对象的使用具有一致性;[Component、Leaf、Composite]
装饰模式
D(Decorator):动态地给一个对象添加额外的职责。就增加功能来说,装饰模式比生成子类更为灵活;[Component、Decorator]
外观模式
F(Façade)为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;
享元模式
F(Flyweight)运用共享技术有效地支持大量细粒度的对象;
代理模式
P(Proxy):为其他对象提供一种代理以控制对这个对象的访问;[Subject、RealSubject、Proxy]
适配器模式与桥接模式的相似性和差异
相似性 | 差异 | |
适配器 | 都给另一个对象提供了一定程度上的间接性,因而有利于系统的灵活性。都涉及到从自身以外的一个接口向这个对象转发请求。 | 解决已有两个接口之间不匹配的问题,不考虑这些接口的实现和演化;用于软件生命周期的不同阶段; |
桥接 |
适配器模式与外观模式的相似性和差异
| 相似性 | 差异 |
适配器 | 外观可以认为是一组对象的“适配器” | 外观定义新的接口,适配器使用原有的接口 |
外观 |
组合模式与装饰模式的相似性和差异
相似性 | 差异 | |
组合 | 都是基于递归组合来组织可变数目的对象 | 目的不同 |
装饰 |
装饰模式与代理模式的相似性和差异
相似性 | 差异 | |
装饰 | 都描述了怎样为对象提供一定程度上的间接引用 | 目的不同 |
代理 |