c++原型模式

2021-02-28  本文已影响0人  一路向后

1.原型模式简介

   原型模式的核心思想是,通过拷贝指定的“原型实例(对象)”,创建跟该对象一样的新对象。简单理解就是“克隆指定对象”。

2.源码实现

#include <iostream>
#include <string>

using namespace std;

class Resume
{
public:
    Resume(string s)
    {
        name = s;
    }

    void setPersonalInfo(string s, string a)
    {
        sex = s;
        age = a;
    }

    void setWorkExperience(string t, string c)
    {
        timeArea = t;
        company = c;
    }

    void display()
    {
        cout << name << " " << sex << " " << age << endl;
        cout << "工作经历: " << timeArea << " " << company << endl;
    }

    Resume *clone()
    {
        Resume *b = new Resume(name);

        b->setPersonalInfo(sex, age);
        b->setWorkExperience(timeArea, company);

        return b;
    }

private:
    string name;
    string sex;
    string age;
    string timeArea;
    string company;
};

int main(int argc, char **argv)
{
    Resume *r = new Resume("李俊宏");

    r->setPersonalInfo("男", "26");
    r->setWorkExperience("2007-2010", "读研究生");
    r->display();

    Resume *r2 = r->clone();
    r2->setWorkExperience("2003-2007", "读本科");

    r->display();
    r2->display();

    delete r;
    delete r2;

    return 0;
}

3.编译源码

$ g++ -o example example.cpp

4.运行及其结果

$ ./example
李俊宏 男 26
工作经历: 2007-2010 读研究生
李俊宏 男 26
工作经历: 2007-2010 读研究生
李俊宏 男 26
工作经历: 2003-2007 读本科

上一篇下一篇

猜你喜欢

热点阅读