周宇南京航空航天大学.pptVIP

  • 11
  • 0
  • 约6.32千字
  • 约 46页
  • 2019-10-29 发布于上海
  • 举报
周宇南京航空航天大学.ppt

* LSP本质:在同一个继承体系中的对象应该有共同的行为特征 例子:企鹅是鸟吗? 生物学:企鹅属于鸟类 LSP原则:企鹅不属于鸟类,因为企鹅不会“飞” 违反LSP的后果:有可能需要修改客户代码 Liskov替换原则(LSP)的本质 Liskov替换原则(LSP)的实现途径 接口隔离原则(ISP) 多个和客户相关的接口要好于一个通用接口 如果一个类有几个使用者,与其让这个类载入所有使用者需要使用的所有方法,还不如为每个使用者创建一个特定接口,并让该类分别实现这些接口 解决”胖接口”问题 接口隔离原则(ISP)-- 示例 依赖倒置原则(DIP) 定义:高层模块不应依赖低层模块,二者都应该依赖于抽象 高层模块只应该包含重要的业务模型和策略选择,低层模块则是不同业务和策略的实现 高层抽象不依赖高层和低层模块的具体实现,最多只依赖于低层的抽象 低层抽象和实现也只依赖于高层抽象 辅助原则 变量尽量不持有一个指向具体类的引用,而是接口或者抽象类 任何方法尽量不覆盖其任何基类中已经实现了的方法 结合里氏替换原则使用? 依赖倒置原则(DIP)的实现途径 依赖倒置原则(DIP)示例 实现开闭原则的重要途径 划分标准:目的 创建型: 创建对象 结构型: 处理类或者对象的组合 行为型: 类或者对象如何交互和分配职责 NUAA CIST 南京航空航天大学计算机科学与技术学院 黄志球 * 创建型 AbstractFactory Builder FactoryMethod Prototype Singleton 结构型 Adapter Bridge Composite Decorator Facade Flyweight Proxy 行为型 Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor Incomplete Coverage ! 模式名称(Pattern Name) 问题(Problem):描述应该在何时使用模式。解释了设计问题和问题存在的前因后果,可能还描述模式必须满足的先决条件 解决方案(Solution):描述了设计的组成成分、相互关系及各自的职责和协作方式。模式就像一个模板,可应用于多种场合,所以解决方案并不描述一个具体的设计或实现,而是提供设计问题的抽象描述和解决问题所采用的元素组合(类和对象) 效果(consequences ):描述模式的应用效果及使用模式应权衡的问题 模式的基本要素 模式名和分类 意图:设计模式是做什么的?它的基本原理和意图是什么?它解决的是什么样的特定设计问题? 动机:说明一个设计问题以及如何用模式中的类、对象来解决该问题的特定情景 适用性:什么情况下可以使用该设计模式?该模式可用来改进哪些不良设计?如何识别这些情况? 结构:采用对象建模技术对模式中的类进行图形描述 如何描述设计模式 参与者:指设计模式中的类 和/或 对象以及它们各自的职责 协作:模式的参与者如何协作以实现其职责 效果:模式如何支持其目标?使用模式的效果和所需做的权衡取舍?系统结构的哪些方面可以独立改变? 实现:实现模式时需了解的一些提示、技术要点及应避免的缺陷,以及是否存在某些特定于实现语言的问题 代码示例:用来说明怎样实现该模式的代码片段 相关模式:与这个模式紧密相关的模式有哪些?其不同之处是什么?这个模式应与哪些其他模式一起使用? 描述设计模式(续) 用来创建对象的模式,抽象了实例化过程 工厂方法模式:父类负责定义创建对象的公共接口,而子类则负责生成具体对象,将类的实例化操作延迟到子类中完成 抽象工厂模式:为一个产品族提供统一的创建接口。当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创建一个具体的工厂类 单件(Singleton)模式:保证一个类有且仅有一个实例,提供一个全局访问点 创建型设计模式 创建型设计模式 (2) 生成器(Builder)模式:将复杂对象创建与表示分离,同样的创建过程可创建不同的表示。允许用户通过指定复杂对象类型和内容来创建对象,用户不需要知道对象内部的具体构建细节 原型(Prototype)模式:通过“复制”一个已经存在的实例来返回新的实例(不新建实例)。被复制的实例就是“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据 结构型模式讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象来实现新的功能(对象结构型

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档