一、对象创建模式
通过“对象创建”模式绕开“new”, 避免对象使用new创建过程中造成得紧耦合。
1. Factory Method
1) 用于隔离类对象的使用者和具体类型之间的耦合关系, 面对一个经常变化的具体类型,紧耦合关系(new)会导致软件脆弱。
2)将创建对象的动作延迟到子类, 从而实现扩展的策略,较好的解决了这种紧耦合关系
3) 只能解决单个对象的需求变化, 缺点在于要求创建方法参数相同。
2. Abstract Factory
1) 应对多系列对象构建;
2)系列对象是指在某一特定系列下对象之间互相依赖或者作用的关系, 不同系列对象之间没有依赖关系;
3)只能应对新系列变化不能应对新对象变化。
3. Prototype
1)采用克隆的方法来完成对象创建;
2)可以利用某些框架实现深拷贝;
4. Builder
1)分步构建一个复杂对象, 分步骤是稳定的, 各个部分经常变化
2)C++构造器不可以调用虚函数, C#可以使得实现有所不同;
二、接口隔离模式
1. Facade
1)为子系统的一组接口提供一致的界面;
2)内部组件耦合关系较大, 不是简单的集合;
2. Proxy
1)为其他对象访问这个对象提供代理;
2)Proxy不一定要保持接口完整的一致性, 只要能实现间接控制, 有时损及一些透明性是可以接受的。
3.Adapter
1)将一个类接口转换成客户希望的另一个接口。
2)复用现存的类, 接口与复用环境不一致
4、Mediator
1) 将多个对象间复杂度的关联关系解耦,将多个对象间控制关系进行集中管理
2)与Facade模式解耦系统间的对象关联关系, Mediator模式是解耦系统内各个对象间之间的关联关系。