Posted on 2015-05-09 11:15
Onway 阅读(224)
评论(0) 编辑 收藏 引用 所属分类:
设计模式
1,抽象工厂
提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。
抽象工厂通常用工厂方法实现,即抽象工厂是工厂方法的集合,每个工厂方法生产一个产品对象。
客户只与抽象工厂和抽象产品进行交互。
抽象工厂难以支持新产品的加入,这涉及到抽象工厂及其子类的改变。
可以通过传递一个参数给工厂方法,该方法标识产品的种类,由其子类解析,以支持新产品的加入。
但这要求不同种类的产品都有一个共同的接口。
2,生成器
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。![](/images/cppblog_com/onway/设计模式/321.png)
![](/images/cppblog_com/onway/设计模式/322.png)
3,工厂方法
定义一个用于创建对象的接口,让子类决定实例化哪一个类。
由一个可以被子类重写的方法创建产品类。选择哪个具体工厂的逻辑判断交由客户端进行。
在不创建工厂子类的情况下,工厂方法可以使用泛型实现。
与简单工厂相比,最大的区别在于创建特定产品的逻辑判断从工厂类内部转移到客户端。
![](/images/cppblog_com/onway/设计模式/33.png)
4,原型
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
关键字Clone,注意浅拷贝和深拷贝。
没什么感觉啊!
![](/images/cppblog_com/onway/设计模式/34.png)
5,单件
目的是提供一个全局访问点。
在Instance静态方法里面可以进行子类实例切换。
![](/images/cppblog_com/onway/设计模式/35.png)
6,简单工厂
简单工厂模式也叫静态工厂方法(Static Factory Method),由一个工厂对象决定创建出哪一种产品类的实例。
需要增加产品会违反开放封闭原则,因为判断逻辑写在方法内。
![](/images/cppblog_com/onway/设计模式/36.png)