原型模式
参考链接
简介
原型模式是用原型实例指定创建兑现的种类,并且通过拷贝这些原型创建新的对象。原型模式说白了其实就是有一个把自己拷贝一下的方法。该模式很好理解,该模式独特地方不是类与类之间的关系,更多的是从语义上理解,只是实现了一个接口而已。
相对来说是比较简单的
UML类图
代码示例
#include <iostream>
using namespace std;
//接口
class Prototype
{
public:
Prototype() {}
virtual ~Prototype() {}
virtual Prototype *Clone() = 0;
};
//实现
class ConcretePrototype : public Prototype
{
public:
ConcretePrototype() : m_counter(0) {}
virtual ~ConcretePrototype() {}
//拷贝构造函数
ConcretePrototype(const ConcretePrototype &rhs) {
m_counter = rhs.m_counter;
}
//复制自身
virtual ConcretePrototype *Clone() {
//调用拷贝构造函数
return new ConcretePrototype (*this);
}
private:
int m_counter;
};
int main(int argc , char **argv)
{
//生成对像
ConcretePrototype * conProA = new ConcretePrototype ();
//复制自身
ConcretePrototype * conProB = conProA->Clone();
delete conProA;
conProA= NULL ;
delete conProB;
conProB= NULL ;
return 0;
}