码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式(6)--原型模式

时间:2016-11-03 02:17:33      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:实例   void   原型   virtual   种类   并且   prot   public   rtu   

//6.原型模式
//ver1

//原型模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
//原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。

//虚基类
class Prototype
{
public:
	Prototype(){}
	virtual ~Prototype(){}
	virtual Prototype * clone() = 0;
};

class ConcretePrototype1 : public Prototype
{
public:
	ConcretePrototype1()
	{
		cout << "ConcretePrototype1 create" << endl;
	}
	ConcretePrototype1(const ConcretePrototype1 &)
	{
		cout << "ConcretePrototype1 copy" << endl;
	}
	virtual ~ConcretePrototype1()
	{
		cout << "ConcretePrototype1 destruction" << endl;
	}
	virtual Prototype * clone()
	{
		return new ConcretePrototype1(*this);
	}
};

class ConcretePrototype2 : public Prototype
{
public:
	ConcretePrototype2()
	{
		cout << "ConcretePrototype2 create" << endl;
	}
	ConcretePrototype2(const ConcretePrototype2 &)
	{
		cout << "ConcretePrototype1 copy" << endl;
	}
	virtual ~ConcretePrototype2()
	{
		cout << "ConcretePrototype2 destruction" << endl;		
	}
	virtual Prototype * clone()
	{
		return new ConcretePrototype2(*this);
	}
};

void main1()
{
	Prototype *ptype1 = new ConcretePrototype1();
	Prototype *copytype1 = ptype1->clone();
}

  

设计模式(6)--原型模式

标签:实例   void   原型   virtual   种类   并且   prot   public   rtu   

原文地址:http://www.cnblogs.com/sylar-liang/p/6025064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!