全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
注:文档内容基本上来自于网上,并加上自己的理解而成。有的觉得网友总结得非常好,就完全照搬下来,供学习之用。然而,有的摘抄并没有加上原链接和出处,请谅解。Prototype模式(原型模式)关于Prototype模式,Wikipedia上如是说:原型模式是创建型模式的一种,其特点在于通过复制一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的原型,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据;或者当一个类实例只能几个不同状态组合中的一种时(比如图像处理中算法参数问题,当需要Clone一张图,并且进一步进行操作时,这种模式尤其有用)要点:1. 实质2. 应用场景: 数字图像处理当中需要Copy一张图的参数实例时 消息实例的Copy时3. JAVA和C+中如何实现 JAVA:Clone和序列化机制 C+: Clone函数意图:用原型指定创建对象的种类,并且通过拷贝函数用这些原型创建对象。适用:当要实例化的类是在运行时刻指定时,例如:通过动态装载为了避免创建一个与产品类层次平行的工厂类层次时当一个类的实例只能有几个不同状态组合中的一种时,建立相应数目的原型并克隆可能要更方便些。UML图:解析:Prototype类似车辆的展示,当你喜欢某款车时,他们会给你一款相同款式的车,像软件中的复制,而不是车展的那辆。/test.h/虚基类,提供基本函数classPrototypepublic:Prototype()virtualPrototype()virtualPrototype*Clone()=0;/派生出来的类,实现具体的Clone函数classConCreatePrototype1:publicPrototypepublic:ConCreatePrototype1();ConCreatePrototype1(constConCreatePrototype1&);/拷贝构造函数,通过这个函数实现类的复制ConCreatePrototype1();virtualPrototype*Clone();/复制出相同对象的接口;/test.cpp:Definestheentrypointfortheconsoleapplication./#includestdafx.h#include#includestdlib.h#includetest.husingnamespacestd;/ConCreatePrototype1:ConCreatePrototype1()coutconstructionofConCreatePrototype1n;ConCreatePrototype1:ConCreatePrototype1()coutdestructionofConCreatePrototype1n;ConCreatePrototype1:ConCreatePrototype1(constConCreatePrototype1&)coutClone();deletepPrototype;deletepPrototype2;system(pause);return0;另一个例子:1.classIOS2.3.public:4.virtualIOS*Clone(void)const=0;5.;6.7.classCWinodowXP:publicIOS8.9.public:10.virtualIOS*Clone(void)const11.12.returnnewCWinodowXP(*this);/用了默认的拷贝构造函数/即在C+中,Clone一般使用类的拷贝构造函数来实现,因此要一般要自己实现它。13.14.;15.classCWindow7:publicIOS16.17.public:18.virtualIOS*Clone(void)const19.20.returnnewCWindow7(*this); /用了默认的拷贝构造函数21.22.;23.classCLinux:publicIOS24.25.public:26.virtualIOS*Clone(void)const27.28.returnnewCLinux(*this);29.30.;31.32.33.int_tmain(intargc,_TCHAR*argv)34.35./*原型模式(Prototype)36.当创建给定类的实例的过程很昂贵或很复杂时,就使用原型模式。37.原型模式允许你通过使用复制现有的实例来创建新的实例(在Java中,这通常意味着使用clone()方法或者反序列化)。38.这个模式的重点在于,客户的代码在不知道要实例化何种特定类的情况下,可以制造出新的实例。*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息安全概论题库及答案
- 机械能守恒考试题及答案
- 2025年药师考试玄学真题及答案
- 儿歌接龙游戏题库及答案
- 2025~2026学年云南省昆明市云南民族大学附属高级中学高三上学期第二次联考数学试卷
- 煤矿智能开采员操作评估考核试卷含答案
- 建设工程质量监督管理
- 磁记录材料生产工安全实践评优考核试卷含答案
- 机织无结网片工岗前技术管理考核试卷含答案
- 砖瓦烧火工安全教育评优考核试卷含答案
- 工程勘测安全培训课件
- 2025下半年四川泸州合江县人力资源和社会保障局考调事业单位工作人员7人笔试考试备考试题及答案解析
- 病人转运工作流程图解
- 习题课件:等腰三角形中的分类讨论思想
- 无人履带车辆的鲁棒轨迹跟踪控制研究
- 2025年 石家庄市市属国有企业招聘笔试考试试卷附答案
- 2025及未来5年中国丙烯醇市场分析及数据监测研究报告
- STEAM背景下小学劳动课程设计
- Y染色体微缺失机制-第2篇-洞察与解读
- 电气应急知识培训内容课件
- 2025年中级电工证考试题库(附答案)
评论
0/150
提交评论