设计模式学习(五):原型模式
来源:互联网 发布:mac菜单栏 编辑:程序博客网 时间:2024/04/30 11:54
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
Prototype原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。
代码
#include <iostream>#include <string>using namespace std;class Prototype{public: virtual void show() = 0; virtual Prototype * clone() = 0;//最主要的方法};class ResumeA:public Prototype { //A类型的简历public: ResumeA(const char * n){name = n;} ResumeA(ResumeA& o){ name = o.name;} void show() {cout<<name<<endl;} Prototype * clone(){return new ResumeA(*this);}private: string name;};class ResumeB:public Prototype { //B类型的简历public: ResumeB(const char * n,const char * m){name = n;school = m;} ResumeB(ResumeB& o){ name = o.name; school = o.school;} void show() {cout<<name<<" "<<school<<endl;} Prototype * clone(){return new ResumeB(*this);}private: string name; string school;};
使用方法
int main(){ Prototype * a = new ResumeA("Smith"); a->show(); a = a->clone(); a->show(); a = new ResumeB("Tom","TSING"); a->show(); a = a->clone(); a->show(); return 1;}
结果
SmithSmithTom TSINGTom TSING
0 0
- 设计模式学习(五)原型模式
- 设计模式学习(五):原型模式
- 设计模式(五) 原型模式
- 设计模式学习日志五:原型模式(原文转载)
- 设计模式学习--原型
- 设计模式学习-----原型模式
- 设计模式学习--原型模式
- 设计模式学习--原型模式
- 学习设计模式-原型模式
- 设计模式 (五)原型模式(Prototype)
- 设计模式 (五)原型模式(Prototype)
- 设计模式 (五)原型模式(Prototype)
- JAVA设计模式五--Prototype(原型模式)
- JAVA设计模式五:--Prototype(原型模式)
- Java设计模式(五)----原型模式
- 五。设计模式(原型模式)
- 设计模式之五原型模式
- 设计模式笔记五:原型模式
- c# 委托与事件
- 字符串匹配暴力算法 与 字符串匹配的KMP算法
- ======= 利用源码安装的tar包,免安装--MySQL-5.6.23 for CentOS6.5_64bit===@guoyJoe
- 第二章作业P51.7
- java反射原理
- 设计模式学习(五):原型模式
- Hadoop 常用命令
- 对类及方法的泛型
- emulator: ERROR: x86 emulation currently requires hardware acceleration!Please ensure Intel HAXM is
- 使用枚举类型 <<Effective Objective-C>>
- 习题1-6
- ACM--dyx--steps--3.1.8--Queuing
- iOS笔记---Block
- svn 合并某一版本提交的代码