小话设计模式六:原型模式
来源:互联网 发布:python中re.search 编辑:程序博客网 时间:2024/05/16 14:37
转自http://www.cnblogs.com/venow/archive/2012/11/05/2755913.html
原型模式定义:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式解析:
原型模式是一种创建型设计模式,该模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。它主要面对的问题为:"某些结构复杂的对象"的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。
UML图如下:
简单示例代码如下:
//基类class Prototype{public: virtual ~Prototype(); virtual Prototype* Clone() const = 0; //一个克隆自身的虚函数,调用拷贝构造函数protected: Prototype();};Prototype::Prototype(){ cout<<"Construct Prototype"<<endl;}Prototype::~Prototype(){ cout<<"Destruct Prototype"<<endl;}class ConcretePrototype : public Prototype{public: ConcretePrototype(); ConcretePrototype(const ConcretePrototype& rhs); ~ConcretePrototype(); virtual Prototype* Clone() const;};ConcretePrototype::ConcretePrototype(){ cout<<"Construct ConcretePrototype"<<endl;}ConcretePrototype::ConcretePrototype(const ConcretePrototype& rhs){ cout<<"Copy Construct ConcretePrototype"<<endl;}ConcretePrototype::~ConcretePrototype(){ cout<<"Destruct ConcretePrototype"<<endl;}Prototype* ConcretePrototype::Clone() const{ return new ConcretePrototype(*this);}int _tmain(int argc, _TCHAR* argv[]){ Prototype* pInstanceOne = new ConcretePrototype; Prototype* pInstanceTwo = pInstanceOne->Clone(); delete pInstanceOne; delete pInstanceTwo; return 0;}
0 0
- 小话设计模式六:原型模式
- 设计模式(之六、原型模式ProtoType)
- 设计模式(六)---原型模式
- 设计模式培训之六:原型模式
- 设计模式培训之六:原型模式
- 设计模式C++实现六: 原型模式
- 设计模式之六:原型模式(Prototype)
- 设计模式(六)原型模式
- 设计模式(六)原型模式
- Java设计模式《六》原型模式
- 设计模式—原型模式(六)
- 设计模式(六):原型模式
- 小话设计模式(五)原型模式
- 模式六(原型模式)
- 设计模式学习笔记六:原型设计模式
- 小话设计模式(六)适配器模式
- 设计模式学习笔记六(Prototype原型模式)
- 设计模式之python版(六)--原型模式
- Ghost备份系统_用Ghost备份系统的注意点
- 匿名内部类名总结
- jax-ws开发的webservice集成到web项目中
- 使用POI 实现 Excel 导入导出
- 不使用ASP.NET中的服务器控件将如何上传文件?
- 小话设计模式六:原型模式
- 简单计算器
- ubuntu pycharm去掉波浪线
- MySQL下实现闪回的设计思路 (MySQL Flashback Feature)
- HBase备份之导入导出
- personal pic
- xhEditor实现插入代码功能
- numpy.nonzero
- nginx使用指南