设计模式-创建-ProtoType(原型)模式

梦想游戏人
目录:
软件架构

目的:根据现有对象为原型创建(深拷贝)一个新对象出来。

先来看看模式图

其实这个就是平时用的深拷贝问题的解决模式,通过一个接口 根据已有的对象为原型,构造一个新对象

 
class ProtoType
{
public: 
	virtual Product*Clone() = 0;

};


class Product:public ProtoType
{
public:
	string _name = "A";

	virtual Product*Clone()override
	{
		Product*ret = new Product;
		ret->_name = this->_name;
		return ret;
	}
};



int main(int argc, char *argv[])
{
 
	Product* a = new Product;
	Product *b = a->Clone();
	system("pause");
	return 0;
}
Scroll Up