一. 对象创建型模式
1. Simple Factory (简单工厂模式)
意图: 隐藏创建具体类的代码.
结构:
图1
说明: nWhichProduct
http://blog.csdn.net/bagboy_taobao_com/article/details/9495425
http://blog.csdn.net/bagboy_taobao_com/article/details/9495529
2. Factory Method(工厂方法模式)
意图: 定义一个用于创建对象的接口, 让子类决定实例化哪一个类. Factory Method使一个类的实例化延迟到其子类.
结构:
图2
说明: ConcteteCreator::FactoryMethod()中会返回ConcteteProduct对象.
http://blog.csdn.net/bagboy_taobao_com/article/details/9851129
http://blog.csdn.net/bagboy_taobao_com/article/details/9851279
3. Abstract Factory(抽象工厂模式)
意图: 提供一个创建一系列或相互依赖对象的接口, 而不需要指定它们具体的类.
结构:
图3
说明: 如果增加一个产品例如ProductC, 那么Factory的接口需要改变(笛卡尔积); 如果要增加一个系列, 则只需要增加一个具体Factory类即可.
http://blog.csdn.net/bagboy_taobao_com/article/details/9851521
http://blog.csdn.net/bagboy_taobao_com/article/details/9851663
4. Builder(构建者模式)
意图: 将一个复杂对象的构建和它的表示分离, 使得同样的构建过程可以创建不同表示.
结构:
图4
说明: 具体Builder类与Director绑定, 客户直接使用Director::Construct()来构建产品. Director::Construct()中构建产品的流程是固定的, 并且只使用Builder的接口来构建. 这样通过绑定不同的具体Builder来构建不同的产品.
http://blog.csdn.net/bagboy_taobao_com/article/details/9971181
http://blog.csdn.net/bagboy_taobao_com/article/details/9971239
5. Prototype(原型模式)
意图: 用原型实例指定创建对象的种类, 并且通过拷贝这些原型创建新的对象.
结构:
图5
说明: Prototype的主要缺陷是每一个Prototype的子类都必须实现Clone操作.
http://blog.csdn.net/bagboy_taobao_com/article/details/11618635
http://blog.csdn.net/bagboy_taobao_com/article/details/11618759
6. Singleton(单体模式)
意图: 保证一个类仅有一个实例, 并提供一个访问它的全局访问点.
结构:
图6
说明: 就是控制好整个空间中唯一的对象实例. 通过私有的构造方法和静态的创建实例实现.
http://blog.csdn.net/bagboy_taobao_com/article/details/11618823