1 / 38
文档名称:

软件设计模式.ppt

格式:ppt   大小:78KB   页数:38页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件设计模式.ppt

上传人:894280529 2018/10/18 文件大小:78 KB

下载得到文件列表

软件设计模式.ppt

相关文档

文档介绍

文档介绍:软件设计模式
黄洪
hhzjut@
学****面向对象设计中前人最有价值的经验总结---设计模式。以便重用优秀、简单的、经过验证的问题解决方案。
设计模式实际上讨论的是在解决面向对象设计的某类问题时,应该设计那些类,这些类之间应该如何通信。
设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统的开发者更加容易理解其设计思路。设计模式帮助你做出有利于系统复用的选择,避免设计损害了系统复用性。通过提供一个类和对象作用关系以及它们之间潜在联系的说明规范,设计模式甚至能够提高已有系统的文档管理和系统维护的有效性。简而言之,设计模式可以帮助设计者更快更好地完成系统设计。
学****设计模式的重要性
课程目的
参考书目
(美) GoF, 设计模式-可复用的面向对象软件的基础,***出版社,2005
(美)Elisabeth Freeman,Eric Freeman,Bert Bates,Kathy Sierra ,《深入浅出设计模式》(英文影印版),东南大学出版社,2005
(美)Alan Holub,《设计模式初学者指南》,***出版社,2006
洁城浩,《设计模式-JAVA语言中的应用》,
ignpatterns/(板桥里人)
第一讲设计模式简介
主要内容
设计模式的起源
什么是设计模式
设计模式的描述
设计模是怎样解决设计问题
设计模式起源于建筑学
著名建筑师Christopher Alexander 写过一本关于建筑学的书,叫做A Pattern Language,中译本叫做《建筑模式语言》,书中将解决一些共同建筑设计问题的优秀方案的相似之处称作“模式”。
他对模式的定义是“在某一背景下某个问题的一种解决方案”,“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的要素。这样,该解决方案就能被反复地使用而不必做重复劳动,但具体方式可能不会完全相同”
这就是建筑模式
模式的四个要素
模式名称(pattern name)
一个助记名,它用一两个词来描述模式的问题、解决方案和效果。
模式的目的/问题(problem)
描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题。
实现方法/解决方案(solution)
描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合来解决这个问题。
效果(consequences)
描述了模式应用的效果及使用模式应权衡的问题(限制和约束因素)。
从建筑模式到软件设计模式
软件开发人员认识到,Alexander 关于“建筑模式”的思想也同样适用于软件设计,因为软件中也存在不断重复出现的、可以以某种相同方式解决的问题。尤其是面向对象的软件设计,只是在面向对象的解决方案里,我们用对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。
20世纪90年代,软件设计模式的代表性研究成果《设计模式:可复用面向对象软件的基础》一书诞生,其作者是被称作四人帮(GoF)的四位学者。
请编程解决以下问题
一个交通查询系统,输入交通工具类型(如汽车、飞机)和起始地点,系统给出到目的地所需的时间。
为了简化问题,起始地点改成里程。
每种交通工具应该是一个类(对象),具有一个计算平均速度的方法,该方法根据三个参数a,b,c来计算平均速度。
如:汽车的平均速度= a*b/c
飞机的平均速度=a+b+c等等
提示:交通工具名等参数可以通过main方法的参数传递;(交通工具名).newInstance()可以生成交通工具的对象。
问题
如果出现新的交通工具,你设计的系统能否不修改原来的代码就进行扩充,实现对新的交通工具运行时间的查询?
一个好的解决方案
采用面向接口的编程原则的一个解决方案。
对于一种经常遇到的设计问题的经过验证的优秀解决方案进行提炼,即可得到一种设计模式。今后遇到类似设计问题时,就可以采用这一解决方案。