19原型模式
来源:互联网 发布:矩阵制组织形式举例 编辑:程序博客网 时间:2024/06/10 21:21
1原型模式的核心内容是:
A:使用一个clone方法复制自己的属性,并将自己返回
2原型模式的作用:就是一个复制自己的过程。
3原型模式具体描述
原型模式允许动态的增加或减少产品类,
产品类不需要非得有任何事先确定的等级结构,
原始模型模式适用于任何的等级结构。
缺点是每一个类都必须配备一个克隆方法。
跟MM用QQ聊天,一定要说些深情的话语了,
我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,
这就是我的情话prototype了。
原型模式:通过给出一个原型对象来指明所要创建的对象的类型,
然后用复制这个原型对象的方法创建出更多同类型的对象。
4原型模式类图
5.代码:
#include<iostream>
#include<string>
usingnamespacestd;
//原型模式允许动态的增加或减少产品类,
//产品类不需要非得有任何事先确定的等级结构,
//原始模型模式适用于任何的等级结构。
//缺点是每一个类都必须配备一个克隆方法。
//跟MM用QQ聊天,一定要说些深情的话语了,
//我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,
//这就是我的情话prototype了。
//原型模式:通过给出一个原型对象来指明所要创建的对象的类型,
//然后用复制这个原型对象的方法创建出更多同类型的对象。
classResume
{
private:
stringname,sex,age,timeArea,company;
public:
Resume(strings)
{
name =s;
}
voidsetPersonalInfo(strings,stringa)
{
sex =s;
age =a;
}
voidsetWorkExperience(stringt,stringc)
{
timeArea =t;
company =c;
}
voiddisplay()
{
cout <<name <<" " <<sex <<" " <<age <<endl;
cout <<"工作经历: " <<timeArea <<" " <<company <<endl <<endl;
}
Resume *clone()
{
Resume *b;
b =newResume(name);
b->setPersonalInfo(sex,age);
b->setWorkExperience(timeArea,company);
returnb;
}
};
intmain()
{
Resume *r = newResume("李彦宏");
r->setPersonalInfo("男","30");
r->setWorkExperience("2007-2010","读研究生");
r->display();
Resume *r2 = r->clone();
r2->setWorkExperience("2003-2007","读本科");
r->display();
r2->display();
cin.get();
return 0;
}
运行结果如下:
- 19原型模式
- 设计模式(19) ------------原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型 模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 最小费用最大流
- 16.适配器模式
- 17.外观模式
- 数据库设计、数据库的实现、SQL编程
- 18享元模式
- 19原型模式
- 阿里巴巴笔试—— 一道动规引发的思考
- 20责任链模式
- 2014年全国高等学校名单
- 第十二章 12.3.2节练习
- windbg常用的查看命令
- 百余款智能电视创意类应用参赛角逐 Top13 App新鲜出炉!
- Centos Install Graphite with Apache
- java中运行时执行顺序和测试类加载顺序