信息系统工程——原型模式教学提纲.ppt

上传人:豆**** 文档编号:60588915 上传时间:2022-11-17 格式:PPT 页数:26 大小:540KB
返回 下载 相关 举报
信息系统工程——原型模式教学提纲.ppt_第1页
第1页 / 共26页
信息系统工程——原型模式教学提纲.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《信息系统工程——原型模式教学提纲.ppt》由会员分享,可在线阅读,更多相关《信息系统工程——原型模式教学提纲.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、设计模式之 原型(yunxng)模式 Prototype第一页,共26页。目录(ml)Content1.原型模式的概念及特点2.原型模式结构及功能3.原型模式示例4.原型模式总结第二页,共26页。1.原型模式的概念及特点第三页,共26页。原型(yunxng)模式定义原型模式就是通过一个原型对象来表明要创建的对象类型,然后用复制这个原型对象的方法来创建更多同类型的对象。原型模式允许一个对象再创建另外一个可定制的对象,根本无需知道(zh do)任何如何创建的细节。1.原型模式的概念及特点第四页,共26页。为什么需要原型(yunxng)模式?在画图工具里,要画圆只需要拖动工具条的画圆工具到绘图区即可

2、,而不需要从头开始一点一点地画一个圆,而且如果需要不同的大小和颜色的圆,只需要复制几个圆,然后再修改他们的大小和颜色即可。这就给使用者带来了很大的方便,即使用者不需要知道对象是如何创建的,只需要复制一个已有的对象,然后在其上面进行修改以得到自己想要的对象,这就是原型(yunxng)模式的具体应用。1.原型模式的概念及特点第五页,共26页。为什么需要原型(yunxng)模式?引入原型模式的本质在于利用已有的一个原型对象,快速的生成和原型对象一样的实例。你有一个A的实例a:A a=new A();现在你想生成和A一样的一个实例b,按照原型模式,应该是这样:A b=a.Clone();而不是重新再n

3、ew一个A对象。通过上面这句话就可以得到(d do)一个和a一样的实例,确切的说,应该是它们的数据成员是一样的。原型模式模式是返回了一个A对象而没有使用new操作。1.原型模式的概念及特点第六页,共26页。原型模式(msh)与工厂模式(msh)的异同原型模式应用于希望(xwng)系统独立于产品的创建、表示和构成时,这和工厂模式很类似。事实上,和工厂模式相同的是,原型模式同样对客户隐藏了对象的创建工作,但是,与工厂模式通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。工厂模式适用于产品种类有限的情况下,当产品数量巨大或需要提供动态产品增删等性能时,使用原型模

4、式具有更强的适应性。4.原型模式总结第七页,共26页。2.原型模式结构及功能第八页,共26页。原型模式(msh)的一般结构原型模式的一般(ybn)结构如下:2.原型模式结构及功能第九页,共26页。原型(yunxng)模式的一般结构客户角色:客户调用(dioyng)端,客户使用原型对象复制出需要的对象。抽象原型角色:定义一个原型的抽象定义,其中包含一个复制自身的接口。具体原型角色:作为原型被复制的具体对象,需实现抽象原型所定义的接口。2.原型模式结构及功能第十页,共26页。原型(yunxng)管理器角色:该角色用于创建具体的原型(yunxng)类对象,并且记录每一个被创建的对象并且把已经创建过的

5、对象保存下来。换句话说就是先创建对象并将其保存下来(由管理器完成)然后利用Clone()方法来创建新对象第十一页,共26页。3.原型模式示例第十二页,共26页。原型(yunxng)模式示例背景:前几天,我很不幸把屋门的钥匙给弄丢了,结果进不了家门。万幸的是,舍友那儿还有一把,于是第二天我拿了她的那把去配钥匙。另外,她还让我顺便给她配一把橱柜的钥匙。现在配个钥匙真是简单,把钥匙给他,他直接(zhji)找一个合适的钥匙胚子,把我的钥匙夹在配钥匙机的一端,胚子夹在另一端,一开电源,一把标尺比着我的钥匙齿型走一遍,砂轮就在胚子上复制出一把钥匙来!一分钟不到,两把新钥匙就搞定了!3.原型模式实例第十三页

6、,共26页。使用UML序列图直观(zhgun)解释3.原型模式实例第十四页,共26页。使用(shyng)类图描述3.原型模式实例第十五页,共26页。程序代码如下(rxi):namespace 原型模式./抽象钥匙(yo shi)原型 public abstract class Key .private string name;public string Name .get.return name;set.name=value;private string owner;public string Owner .get.return owner;set.owner=value;public Key

7、(string name,string owner).this.name=name;this.owner=owner;/钥匙(yo shi)复制自身的抽象定义 public abstract Key Clone();3.原型模式实例第十六页,共26页。/大门钥匙(yo shi)public class GateKey:Key.public GateKey(string owner):base(Gate Key,owner).public override Key Clone().return new GateKey(this.Owner);/橱柜钥匙(yo shi)public class C

8、abinetKey:Key .public CabinetKey(string owner):base(Cabinet Key,owner).public override Key Clone().return new CabinetKey(this.Owner);3.原型模式实例第十七页,共26页。/客户调用(dioyng)方法 public class Client .public static void Main(string args).Key oldGateKey,newGateKey,oldCabinetKey,newCabinetKey;oldGateKey=new GateKe

9、y(“Him);newGateKey=oldGateKey.Clone();newGateKey.Owner=Me;oldCabinetKey=new CabinetKey(Me);newCabinetKey=oldCabinetKey.Clone();newCabinetKey.Owner=“Him;Console.WriteLine(oldGateKey);Console.WriteLine(newGateKey);Console.WriteLine(oldCabinetKey);Console.WriteLine(newCabinetKey);3.原型模式实例第十八页,共26页。原型(y

10、unxng)管理器的应用public class KeyManager .private System.Collections.Hashtable keys=new System.Collections.Hashtable();public Key thisstring name .set.keys.Add(name,value);get.return(Key)keysname;3.原型模式实例第十九页,共26页。/客户调用(dioyng)方法 public class Client .public static void Main(string args).KeyManager keyMan

11、ager=new KeyManager();keyManagergate=new GateKey(Him);keyManagerkey2=new GeneralKey(key2,Him);keyManagerkey3=new GeneralKey(key3,Him);keyManagerkey4=new GeneralKey(key4,“Him);keyManagerkey5=new GeneralKey(key5,Him);Key newKey=(Key)keyManagerkey2.Clone();newKey.Name=Office;newKey.Owner=Me;3.原型模式实例第二十

12、页,共26页。4.原型模式总结第二十一页,共26页。原型模式(msh)的优点1、运行(ynxng)时刻增加和删除产品。2、改变值以指定新对象。3、改变结构以指定新对象。4、减少子类的构造。5、用类动态配置应用。4.原型模式总结第二十二页,共26页。原型模式(msh)的缺点4.原型模式总结 Prototype模式最主要缺点就是每个类必须配备一个克隆方法,而且这个克隆方法需要对类的功能进行通盘考虑,这对全新的类来说不是很难,但对已有的类进行改造时不一定(ydng)是件容易的事。第二十三页,共26页。原型模式实现(shxin)要点 使用一个原型管理器。当一个系统中原型数目不固定时,要保持一个可用原型的注册表。客户不会自己来管理原型,但会在注册表中存储(cn ch)和检索原型。客户在克隆一个原型前会向注册表请求该原型。我们称这个注册表为原型管理器。实现克隆操作P r o t o t y p e模式最困难的部分在于正确实现C l o n e操作。当对象结构包含循环引用时,这尤为棘手。4.原型模式总结第二十四页,共26页。原型模式(msh)实现要点 初始化克隆(k ln)对象。当一些客户对克隆(k ln)对象已经相当满意时,另一些客户将会希望使用他们所选择的一些值来初始化该对象的一些或是所有的内部状态。第二十五页,共26页。谢谢(xi xie)大家!第二十六页,共26页。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁