设计模式--原型模式Prototype(创建型)

一、原型模式

用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式实现的关键就是实现Clone函数,还需要实现深拷贝。

二、UML类图

设计模式--原型模式Prototype(创建型)

三、例子

//父类
class Resume
{
protected:
    char *name;
public:
    Resume() {}
    virtual ~Resume() {}
    virtual Resume* Clone() { return NULL; }
    virtual void Set(char *n) {}
    virtual void Show() {}
};

class ResumeA : public Resume
{
public:
    ResumeA(const char *str);  //构造函数
    ResumeA(const ResumeA &r); //拷贝构造函数
    ~ResumeA();                //析构函数
    ResumeA* Clone();          //克隆,关键所在
    void Show();               //显示内容
};
ResumeA::ResumeA(const char *str) 
{
    if(str == NULL) {
        name = new char[1]; 
        name[0] = '