[工学]中间件技术08.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文档。上传文档
查看更多
[工学]中间件技术08

软件复用中的设计模式 前言 不是解决任何问题都要从头做起,复用以前使用过的解决方案 真正复用面向对象很困难 小说家很少从头设计剧情 什么是设计模式 “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次的使用该方案而不必做重复劳动” Christopher Alexander 四个基本要素 模式名字 助记名,模式词汇表,交流 问题 在何时使用模式 解决方案 提供设计问题的抽象描述和怎样用元素组合解决问题 效果 描述了模式应用的效果及使用模式应权衡的问题,包括对系统的灵活性,扩充性或可移植性的影响 23种设计模式 Adapter:将一个类的接口转换成客户希望的另一个接口,使得不兼容的类可以一起工作 Bridge:将抽象部分与它的实现部分分离,使他们可以独立的变化。 Builder:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 Chain of Responsibility:为解除请求的发送者和接受者之间的耦合,而使多个对象都有机会处理这个请求。将使对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。 Command: 将一个请求封装为一个对象,从而使你可以使用不同的请求对客户进行参数化,对请求排队或者记录请求 Decorator: 动态的给一个对象添加一些额外的职责。就扩展功能而言,其比生成子类方式更为灵活。 Facade:为子系统中的一组接口提供一个一致的界面,其定义了一个高层接口,使子系统使用更加容易。 Factory Method: 定义一个用于创建对象的接口,让子类决定将那个类实例化,其使一个类的实例化延迟到了其子类。 Flyweight: 运用共享技术有效的支持大量细力度的对象。 Interpreter:给定一个语言,定义他的文法的一种表示,并定义一个解释器,改解释器使用改表示来解释语言中的句子 Iterator:提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示 Mediator:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变他们的交互。 Memento:在不破坏封装性的前提下,捕获一个对象内部状态,并在该对象之外保存状态,这样以后就可将该对象恢复到保存的状态 Observer: 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知和刷新。 Prototype:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象 Proxy:为其它对象提供一个代理以控制对这个对象的访问 Singleton: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 State: 允许一个对象在其内部状态改变时改变它的行为。对象看起来修改了它所属的类 Strategy:定义一系列的算法,把他们封装起来,并且时他们可相互替换。本模式使得算法的变化可独立于使用它的客户。 Template Method :定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 Visitor: 表示一个作用于某对象结构中各元素的操作。他使你可以在不改变各元素的类的前提下作用于这些元素的新操作 设计模式怎样解决设计问题 一 寻找合适的对象 设计的许多对象来源于现实世界的分析模型,但是设计结果得到的类通常在世界上并不存在。 决定对象的粒度 对象在大小和数量上变化极大,Fa?ade, Flyweight 应付完整的子系统,支持大量的细粒度对象 其它的设计模式描述了将一个对象分解成许多小对象的特定方法 , 设计模式怎样解决设计问题 二 指定对象的接口 通过确定接口的主要组成部分以及接口发送的数据类型,来帮助定义接口,还会告诉你接口中不应包括那些东西 Memento :他描述了怎样封装和保存对象内部状态 制定了接口之间的关系 Decorator,proxy 要求对象的接口和被修饰的对象和受委托的对象一致 描述对象的实现 类继承和接口继承 对接口编程而不是对实现编程 创建型模式确保系统采用针对接口的方式书写,而不是针对实现 设计模式解决设计问题 三 -复用机制 继承和组合的比较 类继承是白盒复用,父类的内部细节对子类可见 对象组合是类继承之外的另一种复用选择。新的复杂的功能可以通过组装或者组合对象来获得。对象组合要求被组合的对象具有良好定义的接口,黑盒复用。 优缺点: 类继承在编译时期静态定义,运行时无法改变从父类继承的实现。继承对子类揭示了其父类的实现细节,破坏了封装性,子类的实现与它的父类依赖紧密,父类实现中任何变化必然导致子类发生变化。 复用机制--委托 委托(delegation)是一种组合方法

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档