抽象工厂
(1). 一个特定派生工厂类应该只在应用初始化时出现一次,其后所有此体系可创建的对象,全部凭借初始化的工厂实例创建.实现对工厂可创建的对象集合,应用中拥有此类对象统一风格
(2). 不仅在工厂体系间存在类层次,在工厂可创建的每个类型对象间也存在类层次
(3). 如工厂包含对象集合比较稳定,则适合此模式.如工厂包含对象集合会经常变化,由于每次为工厂添加/删除一个对象支持均需考虑整个层次,会带来不便.
生成器
一个代码实例
(1). 非常类似与抽象工厂
区别主要在于抽象工厂,抽象的是许多可独立返回的对象.生成器是针对一个可拆分成许多部件的复合对象.对复合对象的每个拆分的部件进行抽象.单个部件不允许独立返回,你可以自己通过生成器定义将独立部件组合为复合对象的方式,然后通过生成器获得按某个生成器组件风格得到的一个复合对象.
工厂方法
一个代码实例
- 概括来说,此模式就是
基类A提供虚函数fun创建基类对象AA
派生类DrvA重载此函数fun创建派生类对象DrvAA[仍然可以返回基类的指针/引用]
原型
一个代码实例
- 原型模式
意思是我们要创建一个新对象时,我们从一个给定对象进行深拷贝
基于拷贝来的对象,加上一些后续的修改得到我们预期的新对象
单件
代码实例1
代码实例2
单例模式应用于应用只需某个类型唯一实例的场景
两个特性:
(1).延迟创建[对象首次使用时创建]
(2).唯一实例[类型实例全局唯一]