- 10
- 0
- 约3.13千字
- 约 25页
- 2016-02-06 发布于湖北
- 举报
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)。 原型模式 原型模式实例与解析 实例一:邮件复制(浅克隆) 原型模式 原型模式实例与解析 实例二:邮件复制(深克隆) 使用深克隆实现邮件复制,即复制邮件的同时复制附件。 原型模式 原型模式实例与解析 实例二:邮件复制(深克隆) 原型管理器 定义
您可能关注的文档
最近下载
- 平凡的世界读书分享.ppt VIP
- 药物化学习题仉文升主编).pdf VIP
- 2025年山东济南高三一模数学试卷及答案.pdf VIP
- 2025年辽宁省委党校在职研究生招生考试(政治理论)历年参考题库含答案详解.docx VIP
- 保险双录标准话术.pptx
- 2025年辽宁省委党校在职研究生招生考试(法学)历年参考题库含答案详解.docx VIP
- 江苏省南通市2025年中考语文试卷(附答案解析).doc VIP
- 《人工智能在机械设计制造及其自动化中的实践》8900字.docx VIP
- 普传(POWTRAN)变频器PI500变频器使用说明书.pdf
- 最新部编版一年级数学下册教案(全册)表格式二次备课.doc VIP
原创力文档

文档评论(0)