您的位置:首页 > 其它

设计模式之原型模式

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;
	}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: