原型模式技术方案.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Design Patterns 原型模式 河南理工大学 大纲 原型模式概述 原型模式的结构与实现 原型模式的应用实例 原型管理器 原型模式的优缺点与适用环境 原型模式概述 孙悟空“拔毛变小猴” 原型模式概述 分析 孙悟空:根据自己的形状复制(克隆)出多个身外身 软件开发:通过复制一个原型对象得到多个与原型对象一模一样的新对象 原型模式概述 原型模式的定义 对象创建型模式 原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。 Prototype Pattern: Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype. 原型模式概述 原型模式的定义 工作原理:将一个原型对象传给要发动创建的对象(即客户端对象),这个要发动创建的对象通过请求原型对象复制自己来实现创建过程 创建新对象(也称为克隆对象)的工厂就是原型类自身,工厂方法由负责复制原型对象的克隆方法来实现 通过克隆方法所创建的对象是全新的对象,它们在内存中拥有新的地址,每一个克隆对象都是独立的 通过不同的方式对克隆对象进行修改以后,可以得到一系列相似但不完全相同的对象 原型模式的结构与实现 原型模式的结构 原型模式的结构与实现 原型模式的结构 原型模式包含以下3个角色: Prototype(抽象原型类) ConcretePrototype(具体原型类) Client(客户类) 原型模式的结构与实现 浅克隆与深克隆 浅克隆(Shallow Clone):当原型对象被复制时,只复制它本身和其中包含的值类型的成员变量,而引用类型的成员变量并没有复制 原型模式的结构与实现 浅克隆与深克隆 深克隆(Deep Clone):除了对象本身被复制外,对象所包含的所有成员变量也将被复制 原型模式的结构与实现 原型模式的实现 通用的克隆实现方法 abstract class Prototype { public abstract Prototype Clone(); } class ConcretePrototype : Prototype { private string attr; //成员变量 public string Attr { get { return attr; } set { attr = value; } } //克隆方法 public override Prototype Clone() { ConcretePrototype prototype = new ConcretePrototype(); prototype.Attr = attr; return prototype; } } …… ConcretePrototype prototype = new ConcretePrototype(); ConcretePrototype copy = (ConcretePrototype)prototype.Clone(); …… 原型模式的应用实例 实例说明 在使用某OA系统时,有些岗位的员工发现他们每周的工作都大同小异,因此在填写工作周报时很多内容都是重复的,为了提高工作周报的创建效率,大家迫切地希望有一种机制能够快速创建相同或者相似的周报,包括创建周报的附件。试使用原型模式对该OA系统中的工作周报创建模块进行改进。 原型模式的应用实例 实例类图 工作周报创建模块结构图 原型模式的应用实例 结果及分析 周报对象被成功复制,但是附件对象并没有复制,实现了浅克隆 周报是否相同?否 附件是否相同?是 原型模式 原型模式实例与解析 实例一:邮件复制(浅克隆) 由于邮件对象包含的内容较多(如发送者、接收者、标题、内容、日期、附件等),某系统中现需要提供一个邮件复制功能,对于已经创建好的邮件对象,可以通过复制的方式创建一个新的邮件对象,如果需要改变某部分内容,无须修改原始的邮件对象,只需要修改复制后得到的邮件对象即可。使用原型模式设计该系统。在本实例中使用浅克隆实现邮件复制,即复制邮件(Email)的同时不复制附件(Attachment)。 原型模式 原型模式实例与解析 实例一:邮件复制(浅克隆) 原型模式 原型模式实例与解析 实例二:邮件复制(深克隆) 使用深克隆实现邮件复制,即复制邮件的同时复制附件。 原型模式 原型模式实例与解析 实例二:邮件复制(深克隆) 原型管理器 定义

文档评论(0)

美洲行 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档