定义
原型模式(Prototype),即用原型实例创建对象的种类,并通过拷贝这些原型创建新的对象。
原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。
既然不需要知道任何创建的细节,势必需要在基类或子类内部提供恰当的clone接口,以封装的形式满足创建的需求。
代码
//
// Created by Teodosio on 2023/10/14.
//
#include <iostream>
class Prototype {
public:
Prototype(std::string id) : id_(id) {}
~Prototype() = default;
std::string GetId()
{
return id_;
}
virtual Prototype* Clone() = 0;
private:
std::string id_;
};
class ConcretePrototype : public Prototype
{
public:
ConcretePrototype(std::string id) : Prototype(id) {}
ConcretePrototype* Clone() override
{
return new ConcretePrototype(this->GetId());
}
};
int main() {
ConcretePrototype* c1 = new ConcretePrototype("100");
ConcretePrototype* c2 = c1->Clone();
std::cout << c2->GetId() << std::endl;
delete c1;
delete c2;
}