原型模式(Prototype),用原型实例指针创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。
一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,又对性能是大大的提高。
不用重新初始化对象,而是动态地获得对象运行时的状态。
在很多关于原型模式的JAVA、C#的资料中都会顺带提到浅复制与深复制。这里也顺带复习下
“浅复制”被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。
“深复制”把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。
工程结构:
(1)原型抽象类
Prototype.h
(2)具体原型类
ConcretePrototypeA.h
ConcretePrototypeB.h
(3)客户端
PrototypeApplication.cpp
(1)原型抽象类
Prototype.h
(2)具体原型类
ConcretePrototypeA.h
ConcretePrototypeB.h
(3)客户端
PrototypeApplication.cpp