信息系统工程原型模式.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文档。上传文档
查看更多
设计模式之 原型模式 Prototype 目录Content 原型模式定义 原型模式就是通过一个原型对象来表明要创建的对象类型,然后用复制这个原型对象的方法来创建更多同类型的对象。 原型模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节。 1.原型模式的概念及特点 为什么需要原型模式? 在画图工具里,要画圆只需要拖动工具条的画圆工具到绘图区即可,而不需要从头开始一点一点地画一个圆,而且如果需要不同的大小和颜色的圆,只需要复制几个圆,然后再修改他们的大小和颜色即可。这就给使用者带来了很大的方便,即使用者不需要知道对象是如何创建的,只需要复制一个已有的对象,然后在其上面进行修改以得到自己想要的对象,这就是原型模式的具体应用。 1.原型模式的概念及特点 为什么需要原型模式? 引入原型模式的本质在于利用已有的一个原型对象,快速的生成和原型对象一样的实例。你有一个A的实例a: A a = new A();现在你想生成和A一样的一个实例b,按照原型模式,应该是这样:A b = a. Clone();而不是重新再new一个A对象。通过上面这句话就可以得到一个和a一样的实例,确切的说,应该是它们的数据成员是一样的。原型模式模式是返回了一个A对象而没有使用new操作。 1.原型模式的概念及特点 原型模式与工厂模式的异同 原型模式应用于希望系统独立于产品的创建、表示和构成时,这和工厂模式很类似。事实上,和工厂模式相同的是,原型模式同样对客户隐藏了对象的创建工作,但是,与工厂模式通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。工厂模式适用于产品种类有限的情况下,当产品数量巨大或需要提供动态产品增删等性能时,使用原型模式具有更强的适应性。 4.原型模式总结 原型模式的一般结构 原型模式的一般结构如下: 2.原型模式结构及功能 原型模式的一般结构 客户角色:客户调用端,客户使用原型对象复制出需要的对象。 抽象原型角色:定义一个原型的抽象定义,其中包含一个复制自身的接口。 具体原型角色:作为原型被复制的具体对象,需实现抽象原型所定义的接口。 2.原型模式结构及功能 原型管理器角色:该角色用于创建具体的原型类对象,并且记录每一个被创建的对象并且把已经创建过的对象保存下来。换句话说就是先创建对象并将其保存下来(由管理器完成)然后利用Clone()方法来创建新对象 原型模式示例 背景: 前几天,我很不幸把屋门的钥匙给弄丢了,结果进不了家门。万幸的是,舍友那儿还有一把,于是第二天我拿了她的那把去配钥匙。另外,她还让我顺便给她配一把橱柜的钥匙。现在配个钥匙真是简单,把钥匙给他,他直接找一个合适的钥匙胚子,把我的钥匙夹在配钥匙机的一端,胚子夹在另一端,一开电源,一把标尺比着我的钥匙齿型走一遍,砂轮就在胚子上复制出一把钥匙来!一分钟不到,两把新钥匙就搞定了! 3.原型模式实例 使用UML序列图直观解释 3.原型模式实例 使用类图描述 3.原型模式实例 程序代码如下: namespace 原型模式 ...{ //抽象钥匙原型 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(string name, string owner) ...{ this.name = name; this.owner = owner; } //钥匙复制自身的抽象定义 public abstract Key Clone(); } } 3.原型模式实例 //大门钥匙 public class GateKey : Key ...{public GateKe

文档评论(0)

浪漫唯美-文档菜鸟 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档