c++原型模式

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 读本科

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容