原型模式结构图
意图:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
其中:
- Prototype声明一个复制自身的接口。
- ConcretePrototype实现一个复制自身的操作。
- Client让一个原型复制自身从而创建一个新的对象。
应用举例
火影鸣人,多重影分身之术。
#include <iostream>
using namespace std;
//抽象类人
class Person
{
public:
virtual Person *Clone() = 0;
};
class MingRen : public Person
{
public:
MingRen() {};
~MingRen() {};
MingRen(const MingRen& other) {};
virtual Person *Clone()
{
//调用拷贝构造函数
return new MingRen(*this);
}
};
int main()
{
Person *person = new MingRen();
//克隆人
Person *m1 = person->Clone();
Person *m2 = person->Clone();
getchar();
return 0;
}