目录
1、原型模式的含义
2、C++实现原型模式的简单实例
1、原型模式的含义
通过复制现有对象来创建新对象,而无需依赖于显式的构造函数或工厂方法,同时又能保证性能。
The prototype pattern is a creational design pattern in software development. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produce new objects. This pattern is used to: avoid subclasses of an object creator in the client application, like the factory method pattern does.
Specify the kind of objects to create using a prototypical instance, and create new objects by copying this prototype.
(使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象。)
2、C++实现原型模式的简单实例
#include <iostream>
#include <string>// 抽象原型类
class Prototype {
public:virtual Prototype* clone() const = 0;virtual void show() const = 0;
};// 具体原型类
class ConcretePrototype : public Prototype {
public:ConcretePrototype(const std::string& name) : m_name(name) {}Prototype* clone() const override {return new ConcretePrototype(*this);}void show() const override {std::cout << "ConcretePrototype: " << m_name << std::endl;}private:std::string m_name;
};int main() {// 创建原型对象Prototype* prototype = new ConcretePrototype("Prototype");// 克隆原型对象Prototype* clone = prototype->clone();// 展示原型和克隆对象prototype->show();clone->show();delete prototype;delete clone;return 0;
}
在上述示例中,我们定义了一个抽象原型类(Prototype),其中包含了两个纯虚函数:clone()
用于克隆对象,show()
用于展示对象。然后,我们实现了具体的原型类(ConcretePrototype),它继承自抽象原型类,并实现了抽象原型类中的纯虚函数。
在主函数中,我们首先创建一个原型对象(ConcretePrototype),然后通过调用clone()
方法来克隆原型对象,得到一个新的对象。最后,我们分别展示原型对象和克隆对象的信息。