第14章UML与设计模式
第14章 UML与设计模式
1.为什么要使用设计模式 要真正掌握软件设计,必须研究软件设计大师的成功设计,这些设计中 包含了许多设计模式 定义:一个设计模式是对某特定环境下的某类问题 的解决方法。 使用设计模式的好处: >简化并加快设计。可使用现成的模板,节省开发时间,有助于提高 软件质量。 >方便设计者之间的通信。可更准确地描述问题以及解决问题的解 决方案,使解决方案具有一致性,使代码更易理解。 降低风险。设计模式已被使用,证明是有效的解决方案。 >有助于转到OO技术。设计模式是可重用的设计的经验的总结,在 实际中得到成功应用,成功能够说服开发人员采用新技术
1. 为什么要使用设计模式 要真正掌握软件设计,必须研究软件设计大师的成功设计,这些设计中 包含了许多设计模式。 定义:一个设计模式是对某特定环境下的某类问题 的解决方法。 使用设计模式的好处: ➢ 简化并加快设计。可使用现成的模板,节省开发时间,有助于提高 软件质量。 ➢ 方便设计者之间的通信。可更准确地描述问题以及解决问题的解 决方案,使解决方案具有一致性,使代码更易理解。 ➢ 降低风险。设计模式已被使用,证明是有效的解决方案。 ➢ 有助于转到OO技术。设计模式是可重用的设计的经验的总结,在 实际中得到成功应用,成功能够说服开发人员采用新技术
2.设计模式的历史 提出:70年代后期,一位建筑学教授(克里斯托夫亚力山大, 伯克利大学),《模式语言》讨论设计模式建筑设计中的作用。 软件中使用:80年代,有意识地使用,计算机界流行 总结:80年代后期, Erich Gamma的博士论文对模式进行了分 类整理。 领域:1995年,GoF合著了〈 Design Patter: Elements of Obⅰect- Oriented Software〉,设计模式成为了软件工程的重要研 究领域。 GoF: Erich Gamma, Richard Helm, Ralph Johson, John vlissides
2. 设计模式的历史 提出: 70年代后期,一位建筑学教授(克里斯托夫.亚力山大, 伯克利大学),《模式语言》讨论设计模式建筑设计中的作用。 软件中使用:80年代,有意识地使用,计算机界流行。 总结:80年代后期,Erich Gamma的博士论文对模式进行了分 类整理。 领域:1995年,GoF合著了〈Design Patterns: Elements of Object-Oriented Software〉,设计模式成为了软件工程的重要研 究领域。 GoF:Erich Gamma, Richard Helm, Ralph Johson, John Vlissides
3.设计模式的分类 GoF书中有23个设计模式,见表-1。 目的 创建型 结构型 行为型 类|Fact 创建型 oter 抽象了创建对象的过 主要 行为型: Abs系统中是如何创建、pte象主要描述算法和对象间的职 程,使得系统不依赖 责分配,主要考虑对象(或 范 组合和表示的。 ig桥接类)之间的通信模式 对 Builder生成器 Composite组成 Prototype原型 Decorator装饰 Iterate迭代器 Singleton单件 Facade刻面 Mediator中介者 象 Flyweight!元 Memento备忘录 Proxy代理 Observer观察者 State状态 Strategy策略 Visitor访问者
3. 设计模式的分类 GoF书中有23个设计模式,见表-1。 目的 创建型 结构型 行为型 范 围 类 Factory Method工厂方 法 Adapter适配器 Interpreter解释器 Template Method模板方法 对 象 Abstract Factory抽象工 厂 Builder生成器 Prototype原型 Singleton单件 Adapter适配器 Bridge桥接 Composite组成 Decorator装饰 Façade刻面 Flyweight享元 Proxy代理 Chain of Responsibility职 责链 Command命令 Iterateor迭代器 Mediator中介者 Memento备忘录 Observer观察者 State状态 Strategy策略 Visitor访问者 创建型: 抽象了创建对象的过 程,使得系统不依赖 系统中是如何创建、 组合和表示的。 结构型: 主要描述如何组合类和对 象以获得更大的结构。 行为型: 主要描述算法和对象间的职 责分配,主要考虑对象(或 类)之间的通信模式
4.设计模式实例 1) Facade设计模式(属于对象结构型模式) 该模式定义一个高层接口,为子系统的一组接口提供一个 致的界面,以降低系统中各部分之间的相互依赖关系 Client类 Facade 子系统
4. 设计模式实例 1)Façade设计模式(属于对象结构型模式) 该模式定义一个高层接口,为子系统的一组接口提供一个一 致的界面,以降低系统中各部分之间的相互依赖关系。 Q R S I J K L X Y Z Facade A B C D Client类 子系统