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 读本科
网友评论