网站大量收购闲置独家精品文档,联系QQ:2885784924

设计模式之单例原型和抽象工厂模式.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式之单例原型和抽象工厂模式

创建者模式 创建者模式 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,而且客户端不知道对象的构建细节。 原理:创建者模式主要由5各部分组成:组装类、抽象创建者类、实现抽象创建者类的的具体创建类、抽象产品类和实现抽象产品类的具体产品类。 创建者模式的示意图 举例说明: 在创建摩托车组装系统时,可以引擎、摩托车车架、摩托车车轮、摩托车车胎均创建为抽象类,针对摩托车的组装设计一个操作抽象类。 在应用于具体某一型号的摩托车组装时,将以上各自抽象类具体实现,设计出相应具体的产品类型。 而在整体产品的组装上面,我们不采用抽象工厂模式将具体组装放在客户端的实现上,而是设计单独的组装抽象类,工厂类只负责创建。在客户端我们只需要实现工厂的具体类型,由具体的工厂来调用组装方法即可。 这样做的优点在于既在产品优化改进时,方便系统的修改,同时降低了系统对于用户所展现的细节,可在一定程度上保证系统的安全性。 优点:客户端不再负责对象的创建和组装,而是把这个创建的责任交给具体的创建者类,把组装的责任交给组装类,客户端只负责对象的调用,从而明确了各个类的职责。 缺点:虽然利用创建者模式可以创建不同的类型的产 品,但如果产品间的差异非常大,则需要编写多个创 建者类才能实现,这时如果结合工厂模式更好。 原型模式 定义:通过一个原型对象来表明要创建的对象类型, 然后用复制这个原型对象的方法来创建更多同类型的对象。 原理: 主要由两部分组成:抽象原型和具体原型类 原型模式的原理图: 铜钥匙的颜色:黄色 铝钥匙的颜色:银色 铜钥匙的颜色:黄色 铝钥匙的颜色:银色 示例原理图 示例输出结果 以上为以配钥匙为例来说明原型模式图解示例: 首先我们创建一个实现了Cloneable的原型抽象类KeyPrototype,该类重写Cloneable的clone方法;然后我们分别建立继承该抽象类的CopperKey类与Aluminiumkey类。 最后在客户的实际操作类Client中,我们先实例化CopperKey类(或者Aluminiumkey类)然后,在实例化另一个类时,可利用第一个类的对象,使用其clone方法得到第一个对象的复制,然后在该复制对象上使用相应方法即可实现与在新创建的实例对象上进行操作 相同的结果,同时不改变原来对象的属性。 Java中的浅度克隆与深度克隆: A、浅度克隆后的副本对象与源对象共享类中组合进来的对象,而深度克隆后的 对象与源对象完全脱离关系,没有共享成分,即类中组合的对象也被克隆。 B、浅度克隆只进行当前层对象变量值的复制,而深度克隆则可以克隆对象结构表 中的所有层的变量值。 C、深度克隆的原理:将对象变量的值及引用型对象变量的值全部写进输出流中, 再将输入流中的值读进内存重构出对象(Object),在将该对象强转为具体对象时 将按照该对象类中定义的结构树进行再次重构出该对象,在此过程中对象的变量 将按照读进内存的字段值进行重新初始化。 优点:可以动态地添加产品类,而且对整体结构没有影响 缺点:由于原型模式需要给每一个类都配备一个克隆的方法, 这就需要在设计类时通盘考虑,因为在已有类上添加clone操作 是比较困难的;而且原型模式在实现深层次的复制时, 需要编写一定量的代码 单例模式 单例模式的原理图: 如图,该类的getInstance方法返回一个私有的该类型的对象 单例模式的要点有三个; 一、某个类只能有一个实例; 二、它必须自行创建这个实例; 三、它必须自行向整个系统提供这个实例。 从具体实现角度来说,就是以下三点: 一、单例模式的类只提供私有的构造函数, 二、类定义中含有一个该类的静态私有对象, 三、该类提供了一个静态的公有的函数用于 创建或获取它本身的静态私有对象。

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档