设计模式之原型模式
2014-06-27 14:24
281 查看
原型模式简介
原型模式(prototype)是一种创建型设计模式,它的独到之处就是通过复制一个已经存在的实例来返回新的实例,而不是新建实例,在创建一个实例的过程中,不需要知道任何创建的细节。被复制的实例就是原型。
UML图
图片摘自维基百科
原型模式涉及到三个角色:
客户角色(client):客户提出创建对象的请求。
抽象原型:一般有抽象类或者接口类来担任,给出具体原型的接口
具体原型:实现抽象原型,是被复制的对象
实现代码
采用C++实现:class Prototype { public: Prototype(){}; virtual ~Prototype(){}; virtual Prototype* clone() = 0; }; class ConcretePrototype1 :public Prototype { public: ConcretePrototype1(){} ConcretePrototype1(ConcretePrototype1& other){} Prototype* clone() { return new ConcretePrototype1(*this); } }; class ConcretePrototype2 :public Prototype { public: ConcretePrototype2(){} ConcretePrototype2(ConcretePrototype2& other){} Prototype* clone() { return new ConcretePrototype2(*this); } }; void PrototypeTest() { Prototype* p10 = new ConcretePrototype1(); Prototype* p11 = p10->clone(); Prototype* p20 = new ConcretePrototype2(); Prototype* p21 = p20->clone(); delete p10; delete p11; delete p20; delete p21; }
相关文章推荐
- 设计模式学习笔记(六)——Prototype原型模式
- 设计模式学习笔记(四)——Prototype原型
- 设计模式就是来解决应变---原型(prototype)
- 设计模式与泡mm的关系之Prototype原型模式及原型模式的再思考
- 设计模式学习笔记(六)——Prototype原型模式
- 设计模式之Prototype(原型)
- (创建模式)设计模式之Prototype(原型)
- 设计模式原型模式(Prototype)- 面馆里的菜单
- 设计模式之Prototype原型设计模式
- 设计模式之原型法(ProtoType)----对象创建型模式
- 设计模式原型模式(Prototype)- 面馆里的菜单
- 设计模式袖珍版 连续转载之 - Prototype(原型)
- C#设计模式之原型(ProtoType)
- C#设计模式之原型(ProtoType)
- 设计模式原型模式(Prototype)- 面馆里的菜单
- 设计模式之Prototype(原型)
- C#设计模式之原型(ProtoType)
- 设计模式之Prototype(原型)
- 设计模式(3)-原型模式(Prototype)
- 设计模式(5)-原型模式(Prototype)