软件体系结构的设计模式.ppt

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

09.14.05 Verdana Bold 8 write title of presentation here 设计模式 主讲:张春祥 模式 模式描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。 ----《建筑的永恒之道》Alexander 模式其实就是解决某一类问题的方法论。 把解决某类问题的方法总结归纳到理论高度,那就是模式。 模式对问题的描述以及对问题的解答应具有高度的抽象性和代表性。 模式是对现实生活某类现象的共同特质的高度抽象,描述了事务或者现象的规律,这种规律以及解决方法对于类似的现象同样有用。 软件的设计模式 指在软件设计和开发过程中,不断总结出来的,反应了某一类设计问题的解决方案。 模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法 。 设计模式使人们可以更加简单方便地复用成功的设计和体系结构。 设计模式帮助你从别人的成功经验而不是你自己的失败那里学到更多东西;------- Mark Johnson 设计模式提供了一种共享经验的方式,可以使团体受益和避免不断的重复发明。 模式概要 模式只是武功套路。其实真正的内功心法是: 针对接口编程 优先使用对象组合,而不是类继承 找到并封装变化点 设计原则 面向接口编程的原则 面向接口编程,而不是面向实现编程。 可变性封装的原则 在设计时应当考虑系统中什么可能会发生变化,或者什么特性具备多变的特征。这种变化不应该散落在代码中的各个角落,而是应该被适当的封装起来,以便于维护以及扩展; 开-闭原则 软件中的实体(包括类,模块,函数等等)应当是可扩展的(开),而不应被修改(闭)。 里氏替换原则 父类的方法都要在子类中实现或者重写。 不允许子类出现父类所没有定义的方法。 依赖倒转原则 高层模块不应该依赖于低层模块。二者都应该依赖于抽象。 抽象不应该依赖于细节。细节应该依赖于抽象。 设计原则 组合/聚合复用原则 尽量使用组合/聚合、尽量不使用继承 在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用这些对象的目的 接口隔离原则 避免接口污染; 恰当的划分角色和接口; 从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小的接口上的 使用多个专门的接口比使用单一的总接口要好 所有设计原则的目标都是为了使软件:降低耦合,增强灵活性。 模式分类 创建模式(Creational Pattern) AbstractFactory;Builder;FactoryMethod;Prototype;Singleton 结构模式(Structural Pattern) Adapter.4Class;adapter.4Object;Bridge;Composite.s;Composite.t;Decorator;Fa?ade;Flyweight;Proxy 行为模式(Behavioral Pattern) ChainOfResponsibility;Command;Interpreter;Iterator;Mediator;Memento;Observer;Strategy;State;TemplateMethod;Visitor 工厂方法 工厂方法 抽象工厂 抽象工厂 意图:为特定的客户(或情况)提供特定系列的对象。提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 问题:一系列相关的对象需要被实例化。 建造模式 建造模式 单例/单子模式 单例/单子模式 类的适配器(Adapter)模式 意图:将一个类的接口转换成客户希望的另外一个接口。此模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 问题: 你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类 (即那些接口可能不一定兼容的类)协同工作。 类的适配器(Adapter)模式 adapter.for Object 意图:将一个类的接口转换成客户希望的另外一个接口。此模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 问题: 你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。多个对象适配成为一个对象 adapter.for Object 桥梁(Bridge)/柄体(Handle and Body)模式 意图:将抽象部分与它的实现部分分离,使它们都可以独

文档评论(0)

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

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

1亿VIP精品文档

相关文档