- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05原型模式、单例模式与建造者模式
原型模式、单例模式与建造者模式 刘 伟 weiliu_china@126.com 建造者模式 模式动机 有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用。比如,一个电子邮件有发件人地址、收件人地址、主题、内容、附录等部分,而在最起码的收件人地址未被赋值之前,这个电子邮件不能发出。有些情况下,一个对象的一些性质必须按照某个顺序赋值才有意义。在某个性质没有赋值之前,另一个性质则无法赋值。这些情况使得性质本身的建造涉及到复杂的商业逻辑。这时候,此对象相当于一个有待建造的产品,而对象的这些性质相当于产品的零件,建造产品的过程就是组合零件的过程。由于组合零件的过程很复杂,因此,这些“零件”的组合过程往往被“外部化”到一个称作建造者的对象里,建造者返还给客户端的是一个全部零件都建造完毕的产品对象。 建造者模式(续) 模式定义 建造者模式(?Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建构成可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。 建造者模式(续) 模式结构 建造者模式(续) 参与者 Builder:抽象建造者 ConcreteBuilder:具体建造者 Director:指挥者 Product:产品角色 建造者模式(续) 代码分析 实例:汽车组装车间、组装电脑(05-06Builder-AbstractFactory.java) 建造者模式(续) 实例分析 实例一:车间造车 建造者模式(续) 实例分析 实例一:车间造车(代码实现) 建造者模式(续) 模式优缺点 使用建造者模式主要有以下效果: 建造模式的使用使得产品的内部表象可以独立的变化。使用建造者模式可以使客户端不必知道产品内部组成的细节。 每一个Builder都相对独立,而与其它的Builder无关。 模式所建造的最终产品更易于控制。 建造者模式(续) 模式使用 以下情况应当使用建造者模式: 需要生成的产品对象有复杂的内部结构。 需要生成的产品对象的属性相互依赖,建造者模式可以强迫生成顺序。 在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到。 * * 内 容 原型模式 单例模式 建造者模式 原型模式 模式动机 有些对象的创建过程较为复杂,而且有时候需要频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是原型模式的用意。 原型模式(续) 模式定义 原型模式(Prototype Pattern):它是一种对象创建型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式允许一个对象再创建另外一个可定制的对象,无需知道任何创建的细节。工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝原型自己来实现创建过程。 原型模式(续) 模式结构 原型模式(续) 参与者 Prototype:抽象原型类 ConcretePrototype:具体原型类 Client:客户 原型模式(续) 模式解释 所有的Java类都继承自java.lang.Object, 而Object类提供一个clone()方法,可以将一个Java对象复制一份。但是,这个Java类必须实现一个标识接口Cloneable,标识这个Java类支持复制。 原型模式(续) 模式解释 深克隆与浅克隆 在浅克隆中,被复制对象的所有变量都具有与原来的对象相同的值,而所有的对其它对象的引用仍然指向原来的对象。换言之,浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其中的成员对象并不复制。在浅克隆中,当对象被复制时它所包含的成员对象却没有被复制。 原型模式(续) 模式解释 深克隆与浅克隆 原型模式(续) 实例分析 实例一:孙悟空变身(浅克隆) 原型模式(续) 实例分析 实例一:孙悟空变身(浅克隆)(代码实现) 原型模式(续) 实例分析 实例二:孙悟空变身(深克隆)(代码实现) 原型模式(续) 模式优缺点 原型模式的优点包括: 原型模式允许动态增加或减少产品类。 原型模式提供了简化的创建结构。 原型模式具有给一个应用软件动态加载新功能的能力。 产品类不需要非得有任何事先确定的等级结构 。 原型模式(续) 模式优缺点 原型模式的缺点有: 原型模式的最主要缺点就是每一个类必须配备一个克隆方法。而且这个克隆方法需要对类的功能进行通盘考虑,这对全新的类来说不是很难,但对已有的类进行改造时,不一定是
您可能关注的文档
- 重庆市2013年(B).ppt
- 难忘山小学一半模型.ppt
- 青岛版一年级下册人民币的认识.ppt
- 青岛版二年级数学万以内数加减法(二).ppt
- 青春与感恩.ppt
- 青春放歌.ppt
- 静音无油空压机维修保养技巧.pptx
- 除雪除冰机械简介.ppt
- 青岛版六年级数学下册认识比例尺.ppt
- 面积练习知识与能力训练.ppt
- 2024重庆市渝北区古路镇社区工作者考试真题及答案汇总.docx
- 四年级品德与社会下册 从烽火台到互联网 3说课稿 人教新课标版.docx
- 2024重庆市綦江区扶欢镇社区工作者考试真题及答案汇总.docx
- 2024重庆市綦江区东溪镇社区工作者考试真题及答案汇总.docx
- 2024重庆市丰都县虎威镇社区工作者考试真题及答案汇总.docx
- 2024重庆市城口县高观镇社区工作者考试真题及答案汇总.docx
- 2024徐州市丰县梁寨镇社区工作者考试真题及答案汇总.docx
- 2024重庆市璧山区健龙镇社区工作者考试真题及答案汇总.docx
- 2024重庆市云阳县凤鸣镇社区工作者考试真题及答案汇总.docx
- 2024徐州市丰县首羡镇社区工作者考试真题及答案汇总.docx
文档评论(0)