Shanghai Jiao Tong University 上海交通大学 Object Oriented Analysis and Design Design Pattern 上海交通大学软件工程中心
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Design Pattern
Outline 什么是设计模式 设计模式要素 设计模式的分类 ◆ 几种设计模式的介绍 创建型模式 结构型模式 行为模式 Object Oriented Analysis and Design 2
Object Oriented Analysis and Design 2 Outline w 什么是设计模式 w 设计模式要素 w 设计模式的分类 w 几种设计模式的介绍 § 创建型模式 § 结构型模式 § 行为模式
什么是模式 Christopher Alexander说过:“每一个模式描述 了一个在我们周围不断重复发生的问题,以及该问题 的解决方案的核心。这样,你就能一次又一次地使用 该方案而不必做重复劳动” 尽管A 1e x a n de r所指的是城市和建筑模式, 但他的思想也同样适用于面向对象设计模式,只是在 面向对象的解决方案里,我们用对象和接口代替了墙 壁和门窗。两类模式的核心都在于提供了相关问题的 解决方案。 定义:“在一个上下文中对一种问题的解决方案”。 这种定义限定模式为单一的问题-解决方案型 Object Oriented Analysis and Design 3
Object Oriented Analysis and Design 3 什么是模式 Christopher Alexander 说过: “每一个模式描述 了一个在我们周围不断重复发生的问题,以及该问题 的解决方案的核心。这样,你就能一次又一次地使用 该方案而不必做重复劳动” 。 尽管A l e x a n d e r所指的是城市和建筑模式, 但他的思想也同样适用于面向对象设计模式,只是在 面向对象的解决方案里,我们用对象和接口代替了墙 壁和门窗。两类模式的核心都在于提供了相关问题的 解决方案。 定义: “在一个上下文中对一种问题的解决方案” 。 ——这种定义限定模式为单一的问题-解决方案型
关于设计模式 ◆ 对已有模式的整理、分类 ◆一套描述模式的词汇,可用于交流和文档化 ◆ 为软件设计总结了宝贵的经验,这些设计经 验可以被重用,但不是简单的代码重用 ◆分类: Creational Patterns Structural Patterns Behavioral Patterns 在软件设计模式领域,起到先驱的作用 Object Oriented Analysis and Design 4
Object Oriented Analysis and Design 4 关于设计模式 w 对已有模式的整理、分类 w 一套描述模式的词汇,可用于交流和文档化 w 为软件设计总结了宝贵的经验,这些设计经 验可以被重用,但不是简单的代码重用 w 分类: § Creational Patterns § Structural Patterns § Behavioral Patterns w 在软件设计模式领域,起到先驱的作用
Design patternframework ·Patterns支持软件结构和设计的重用 抓住了特定领域中问题的成功解决方案中的静态、动态 结构和相互之间的协作关系 "patterns.与开发语言无关,但是建立在一定的环境基础上 例如:经典的MVC、Factory Method ◆ frameworks支持细节设计和代码的重用 framework是一组组件的综合,这些组件相互协作,为一 族相关应用提供了一个可重用的框架结构 ·例如:MMC、MS Script Engine 两者结合起来,design patterns and frameworks 有助于提高软件的质量 ·比如:重用性,扩展性,性能,可维护性 Object Oriented Analysis and Design 5
Object Oriented Analysis and Design 5 Design pattern与framework w Patterns支持软件结构和设计的重用 § 抓住了特定领域中问题的成功解决方案中的静态、动态 结构和相互之间的协作关系 § patterns与开发语言无关,但是建立在一定的环境基础上 § 例如:经典的MVC、Factory Method w frameworks支持细节设计和代码的重用 § framework是一组组件的综合,这些组件相互协作,为一 族相关应用提供了一个可重用的框架结构 § 例如:MMC、MS Script Engine w 两者结合起来, design patterns and frameworks 有助于提高软件的质量 § 比如:重用性,扩展性,性能,可维护性