Prototype 提供了自我复制的功能
- Prototype 模式提供了一个通过已存在对象进行新对象创建的接口(Clone),Clone()实现和具体的实现语言相关,在 C++中我们将通过拷贝构造函数实现之。
#include"prototype.h" #include<iostream> using namespace std; int main() { prototype *p = new ConcretePrototype(); prototype *p1 = p->Clone(); system("pause"); return 0; }
#pragma once #include<iostream> using namespace std; class prototype { public: virtual ~prototype(); virtual prototype* Clone() const = 0; protected : prototype(); }; class ConcretePrototype:public prototype { public: ConcretePrototype(); ~ConcretePrototype(); ConcretePrototype(const ConcretePrototype &cp); prototype* Clone() const; };
#include "prototype.h" prototype::prototype() { } prototype::~prototype() { } ConcretePrototype::ConcretePrototype() { } ConcretePrototype::~ConcretePrototype() { } ConcretePrototype::ConcretePrototype(const ConcretePrototype & cp) { cout << "concretePrototype copy" << endl; } prototype * ConcretePrototype::Clone() const { return new ConcretePrototype(*this); }