设计模式---原型模式
来源:互联网 发布:纽伦新港 知乎 编辑:程序博客网 时间:2024/06/09 18:20
原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节
浅复制,被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。
深复制,把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象
#include<iostream>
using namespace std;
class Resume
{
protected:
char *m_name;
public:
virtual Resume *Clone(){return NULL;}
virtual void Show(){}
};
class Instance : public Resume
{
public:
Instance(const char *str)
{
if(str == NULL)
{
m_name = new char[1];
m_name[0] = '\0';
}
else
{
m_name = new char[strlen(str)+1];
strcpy(m_name,str);
}
}
Instance(const Instance &r)
{
m_name = new char [strlen(r.m_name)+1];
strcpy(m_name,r.m_name);
}
Instance* Clone()
{
return new Instance(*this);
}
void Show()
{
cout<<"instance name "<<m_name<<endl;
}
};
int main()
{
Resume *r1 = new Instance("A");
Resume *r3 = r1->Clone();
r1->Show();
delete r1;
r1=NULL;
r3->Show();
delete r3;
r3=NULL;
return 0;
}
阅读全文
0 0
- 设计模式:原型模式
- 设计模式------原型模式
- 设计模式 原型模式
- 设计模式-【原型模式】
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式- 原型模式
- 设计模式:原型模式
- 设计模式 - 原型模式
- 设计模式-原型模式
- 【设计模式】原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 【设计模式】原型模式
- 设计模式----原型模式
- 设计模式------原型模式
- java菜鸟 socket简易局域网聊天室
- i/o多路转接 select(一)
- 怎么监听某篇帖子的访问量
- [YTU]_2433( C++习题 对象数组求最大值)
- STL vector用法介绍
- 设计模式---原型模式
- 设计模式学习
- 图像的上采样(up-sampling)和下采样(down-sampling)
- extjs xtype类型
- Mysql数据库备份的问题:mysqldump: Got error: 1049: Unknown database ‘blog;’ when selecting the database
- 高度自定义TextView 绝对满足你
- stm32 exti 5~9 中断源区分
- java 顺时针打印矩阵
- 面对稀疏噪声的有标签数据时如何改造通用词嵌入表示