构建器模式
解决问题:一个复杂对象的创建工作,各个部分剧烈变化,组合起来在一起的算法相对稳定
和模板模式的区别主要是,构建模式主要复杂对象的创建
模板模式
定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现
单例模式
对象性能模式,有时候需要保证只有一个实例的场景下
定义一个单例类:
- 私有化它的构造函数,以防止外界创建单例类的对象;
- 使用类的私有静态指针变量指向类的唯一实例;
- 使用一个公有的静态方法获取该实例。
享元模式
享元模式(Flyweight):运用共享技术有效的支持大量细粒度的对象。
门面模式
- 从客户程序的角度来看,Facade模式简化了整个组件系统的接口,对于组件内部与外部客户程序来说,达到了一种“解耦”的效果一内部子系统的任何变化不会影响到Facade接口的变化。
- Facade设计模式更注重从架构的层次去看整个系统,而不是单个类的层次。Facade很多时候更是一种架构设计模式。
- Facade设计模式并非一个集装箱,可以任意地放进任何多个对象。Facade模式中组件的内部应该是"相互耦合关系比较大的一系列组件”, 而不是一个简单的功能集合。
代理模式
给某一个对象提供一个代理,并由代理对象控制对原对象的引用。(为其他对象提供一种代理以控制这个对象的访问)
适配器模式
将一个类的接口转换为客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
当系统的数据和行为都正常,但接口不负荷时,可以考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用的环境要求不一致的情况。
迭代器模式
迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
当你需要一个聚集对象,而且不管这些对象,而不管这些对象是什么都需要遍历的时候,就应该考虑用迭代器模式;