长沙理工大学:《高级软件工程》ppt课件 第14章 UML与设计模式

第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类 子系统

4.设计模式实例 1) Facade设计模式(属于对象结构型模式) 该模式定义一个高层接口,为子系统的一组接口提供一个 致的界面,以降低系统中各部分之间的相互依赖关系 Client Clienta Client Clienta Connection Database Recordset DatabaseMetadata Statement DatabaseMetadat. Connection Statement Resultsetmetadata Resultsetmetadata 获得更大的结构
4. 设计模式实例 1)Façade设计模式(属于对象结构型模式) 该模式定义一个高层接口,为子系统的一组接口提供一个一 致的界面,以降低系统中各部分之间的相互依赖关系。 ClientA ClientB Connection DatabaseMetadata Statement ResultSetMetadata ResultSet Database Recordset ClientA_ ClientB_ DatabaseMetadata_ ResultSetMetadata_ Connection_ Statement_ ResultSet_ 获得更大的结构

4.设计模式实例 对于简单数据库应用, Database、 Recordset的功能简单,如连接数据库、执行查询即可。 public class Database i private Connection con public database(String driver).) public void Open(String url, String uid, String pwd)i public void Close({…} public Recordset SelectQuery( String sql.) public int Update Query (String sql.3 public class recordset i private Resultset rs private Database db public recordsetResult Set rs).j public void Open( String sql, Database db). public void Closet public int Move First& public String GetField Value( String fieldname) public String GetField Value (int fieldindex)
4. 设计模式实例 对于简单数据库应用,Database、Recordset的功能简单,如连接数据库、执行查询即可。 public class Database { private Connection con; public Database(String driver){...} public void Open(String url,String uid,String pwd){...} public void Close(){...} public Recordset SelectQuery(String sql){...} public int UpdateQuery(String sql){...} } public class Recordset { private ResultSet rs; private Database db; public Recordset(ResultSet rs){...} public void Open(String sql,Database db){...} public void Close(){...} public int MoveFirst(){..} ... public String GetFieldValue(String fieldname){..} public String GetFieldValue(int fieldindex){..} ... }

4.设计模式实例 Facade设计模式应用范围: 为复杂的子系统提供一个简单的接口; >客户类和客户类要使用的类之间存在太多的依赖 关系; 要建立具有层次结构的子系统
4. 设计模式实例 Facade设计模式应用范围: ➢ 为复杂的子系统提供一个简单的接口; ➢ 客户类和客户类要使用的类之间存在太多的依赖 关系; ➢ 要建立具有层次结构的子系统

4.设计模式实例 2) Abstract Factory设计模式(属于对象创建型模式) 该模式的目的是给用户程序提供一个创建一系列相关或相互 依赖的对象的接口,不需要在客户程序中指定要具体使用哪个 类。(可在运行时由用户确定) 工厂生产产品,将对象看作产品,类产生对象,类是产生对 象产品的工厂,叫做类工厂。 在Java语言中支持一个程序的图形界面元素具有多种显示形 式,或是 Metal,或是 Motif,或是 Windows风格,并且可由用户 配置使用什么样的风格
4. 设计模式实例 2)Abstract Factory设计模式(属于对象创建型模式) 该模式的目的是给用户程序提供一个创建一系列相关或相互 依赖的对象的接口,不需要在客户程序中指定要具体使用哪个 类。(可在运行时由用户确定) 工厂生产产品,将对象看作产品,类产生对象,类是产生对 象产品的工厂,叫做类工厂。 在Java语言中支持一个程序的图形界面元素具有多种显示形 式,或是Metal,或是Motif,或是Windows风格,并且可由用户 配置使用什么样的风格

4.设计模式实例 2) Abstract Factory设计模式(属于对象创建型模式) CidgetFactory ◆ createscrolbar ◆ createindor0 每一种元素类型均有 客户通过该抽象类(抽 个抽象类 象工厂)接口来产生界 面元素,每一种元素对 应一个操作。 Windows WidgetFactory Windows Window Motifwindow se一个界面元素,有不同 MotifwidgetFactory Windows ScrollBar 的具体风格类 MotifScrollBar 对界面元素的产生,不同风 格有不同的产生工厂
4. 设计模式实例 2)Abstract Factory设计模式(属于对象创建型模式) 客户通过该抽象类(抽 象工厂)接口来产生界 面元素,每一种元素对 应一个操作。 对界面元素的产生,不同风 格有不同的产生工厂。 每一种元素类型均有一 个抽象类。 一个界面元素,有不同 的具体风格类
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 长沙理工大学:《高级软件工程》ppt课件 第12章 业务建模.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第10章 配置图.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第9章 组件图.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第8章 状态图和活动图.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第7章 数据建模.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第6章 包(Package).ppt
- 长沙理工大学:《高级软件工程》ppt课件 第5章 类图和对象图.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第4章 顺序图和协作图.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第3章 用例和用例框图.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第2章 UML概述.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第1章 面向对象技术-UML.ppt
- 《网络与信息安全》课程PPT教学课件(密码学基础).ppt
- 《Visual FoxPro程序设计教程》第三章 项目管理器.ppt
- 《Visual FoxPro程序设计教程》第二章 Visual FoxPro基础及数据运算.ppt
- 《Visual FoxPro程序设计教程》第十一章 报表与标签设计.ppt
- 《Visual FoxPro程序设计教程》第九 章 表单设计.ppt
- 《Visual FoxPro程序设计教程》第十章 菜单设计与应用.ppt
- 《Visual FoxPro程序设计教程》第七章 查询与视图设计.ppt
- 《Visual FoxPro程序设计教程》第八章 面向对象的程序设计.ppt
- 《Visual FoxPro程序设计教程》第六章 结构化程序设计.ppt
- 长沙理工大学:《高级软件工程》ppt课件 第13章 Web建模.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)复习模拟题(一).ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)复习模拟题(二).ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第一章 绪论.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第二章 基础命令.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第三章 绘图命令.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第四章 编辑修改命令.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第五章 设置命令.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第六章 尺 寸标注.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第七章 辅助命令.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第八章 表格、图幅及几何作图.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第九章 建筑工程图.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第十一章 三维立体造型原理及概述.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第十二章 实体制作命令.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第十二章 实体修改命令.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第十四章 三维网格曲面.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第十六章 家具及装潢.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)第十七章 建筑造型.ppt
- 西安电子科技大学:《计算机辅助设计》课程教学资源(PPT讲稿,简版)总复习.ppt
- 西安电子科技大学:《JAVA语言》课程教学资源(PPT课件讲稿)第6章 Java中类、对象、接口及包的概念.ppt