软件设计模式-PPT课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件设计模式-PPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 模式 PPT 课件
- 资源描述:
-
1、Software Design Pattern第一讲 软件设计模式概述设计模式的基本概念软件危机软件设计模式的定义软件设计模式的必要性与作用软件设计的基本原则软件设计模式学习的前提基础软件设计模式的主要分类创建型模式结构型模式行为型模式工厂方法模式设计模式的基本概念-软件危机软件危机的含义软件危机的含义软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度的存在这些问题。软件危机包含下属两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。设计模式的基本概念-软件危机软件危机
2、的产生原因软件危机的产生原因与软件本身的特点有关与软件本身的特点有关。软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件;软件不会因使用时间过长而“老化”或“用坏”;在写出程序代码并在计算机上试运行之前,软件开发过程的进展情况较难衡量,软件质量也较难评价,因此管理和控制软件开发过程十分困难;软件质量不软件质量不是根据大量制造的相同实体的质量来度量,而是与每一个组是根据大量制造的相同实体的质量来度量,而是与每一个组成部分的不同实体的质量紧密相关成部分的不同实体的质量紧密相关,因此,在运行时所出现的软件错误几乎都是在开发时期就存在而一直未被发现的,改正这类错误通常意味着改正或修改原来的设计,
3、这就在客观上使得软件维护远比硬件维护困难;软件是一种信息产品,具有可延展性,属于柔性生产,与通用性强的硬件相比,软件更具有多样化的特点。设计模式的基本概念-软件危机软件危机的产生原因软件危机的产生原因来自于软件开发人员的弱点来自于软件开发人员的弱点。其一,软件产品是人的思维结果,因此软件生产水平最终在相当程度上取决于软件人员的教育、训练和经验的积累;其二,对于大型软件往往需要许多人合作开发,甚至要求软件开发人员深入应用领域的问题研究,这样就需要在用户与软件人员之间以及软件开发人员之间相互通讯,在此过程中难免发生理解的差异,从而导致后续错误的设计或实现,而要消除这些误解和错误往往需要付出巨大的代
4、价;其三,由于计算机技术和应用发展迅速,知识更新周期加快,软件开发人员经常处在变化之中,不仅需要适应硬件更新的变化,而且还要涉及日益扩大的应用领域问题研究。设计模式的基本概念-软件危机软件危机软件危机软件危机主要有以下一些典型表现:1.对软件开发成本和进度的估计常常很不准确。2.用户对“已完成的”软件系统不满意的现象经常发生。3.软件产品的质量往往靠不住。4.软件常常是不可维护的。5.软件通常没有适当的文档资料。6.软件成本在计算机系统总成本中所占的比例逐年上升。7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。设计模式的基本概念模式设计模式软件设计模式的必要性与作用设计模
5、式的分类设计模式的基本概念设计模式的概念最早起源于Christopher Alexander.每个模式描述了一个在我们的环境中不断出现的问题以及该问题解决方案的核心。通过使用模式,我们可以无限次使用那些已有的解决方案,无需重复相同的工作。通用定义:模式是一种问题的解决思路,它已经适用于一种实践环境,并可以使用于其他环境。设计模式的基本概念-生活中的模式古人在遇到生活问题时,能通过不断的思考、实践、总结,最后得到许多解决生活困难的方法。后人遇到相同问题的时候,也会采用同样的方法,这些方法就被称为模式。烤肉-取火取水-打井耕田-耕牛设计模式的基本概念-设计模式所谓设计模式是对于某一类软件设计问题的
6、可重用的解决方案。设计模式的最终目标就是帮助人们利用成功软件设计师们的集体经验,来设计出更加优秀的软件,解决软件危机的问题。引入引入软件设计模式将成为企业或者个人可持续发展软件设计模式将成为企业或者个人可持续发展的必然选择。只有专业,才能在这个领域做得最的必然选择。只有专业,才能在这个领域做得最好,为社会、企业和个人带来更多的价值好,为社会、企业和个人带来更多的价值设计模式的基本概念-设计模式的特点设计模式的特点设计模式的特点名称名称每个设计模式都有一个名称。可传授性可传授性问题反复出现,解决问题的方案相同,大家都接受改方案。可重用性可重用性问题反复出现,尽管问题出现的 环境有不同,但解决方案
7、都应该有效。设计模式的基本概念-设计模式的必要性与作用重用设计重用设计重用设计比重用代码更有意义,它会自动带来代码重 用;为设计提供共同的词汇为设计提供共同的词汇 每个模式名就是一个设计词汇,其概念使得程序员间的交流更加 方便;编写开发文档更加容易;重构系统更加容易重构系统更加容易设计模式从最初的设计就考虑到变化,因此当需求发生变化时,一般不会改变整体设计;节约设计时间节约设计时间可采用任何编程语言实现可采用任何编程语言实现 设计模式的基本概念-设计模式基本原则高内聚、低高内聚、低耦合耦合一个软件系统要有一个稳定的架构,不会随需求的改变而发生巨大的变动。因此,高内聚、低耦合是一个软件系统设计中
8、必须遵循的基本原则。面向抽象编程面向抽象编程在面向过程的软件开发中,上层组件调用下层组件,就意味着上层组件依赖于下层组件,当下层组件发生剧烈变化时,上层组件也要跟着一起发生变动,这将导致软件组件模块的复用性大大降低,从而增加软件开发成本,使软件结构设计上存在一定的臃肿性,不利于后期系统维护工作。多用组合少用继承多用组合少用继承在面向对象的软件设计中,对于类的扩展,首先想到的是使用类的继承来实现,由子类继承父类,从而完成对子类功能的扩展。继承的好处是可以尽量让相同的属性或者功能复用,但是随着项目越来越大,需求的不断变化,继承就会变得越来越臃肿,后期难以控制和维护。最重要的是,继承会不分青红皂白地
9、把父类的公有和受保护的方法统统继承下来,而这些方法可能是子类不需要的功能,会对子类产生一些危害。“开开-闭闭”原则原则,即“对扩展开放,对修改关闭”设计模式的基本概念-设计模式的分类目前设计模式可以分为两大类:目前设计模式可以分为两大类:l GOF(Gang of Four)GOF 是由四位(Erich GAMMA,Richarc Helm,Ralph Johnson,John Vlissides)具有丰富的面向对象设计经验的大师给出的,所以被称为“四人帮”模式;GOF设计模式常用的有23种;着重考虑设计的实现,类的交互和软件的质量;l GRASP(General Responsibility
10、 Assignment Software Patterns)通用责任分配挼建设计模式;着重考虑设计类的原则以及如何分配类的功能;GOF是遵循是遵循GRASP模式要求的面向对象设计模式模式要求的面向对象设计模式设计模式的基本概念-设计模式的分类GOF设计模式分类可基于两种准则:设计模式分类可基于两种准则:l 根据模式的目的,也就是根据模式是用来完成什根据模式的目的,也就是根据模式是用来完成什么工作么工作 Creational(创建型)Structural(结构型)Behavioral(行为型)l根据模式的范围,模式是针对类还是对象根据模式的范围,模式是针对类还是对象类模式;对象模式;设计模式的基
11、本概念-设计模式的分类设计模式学习的前提基础l至少掌握一种面向对象程序设计语言至少掌握一种面向对象程序设计语言l具有面向对象程序设计的基本概念具有面向对象程序设计的基本概念l掌握掌握UML(Unified Modelling Language)实践是需要理论知识积累的。要想正确应用各种设计模式,首先需要学习设计模式,掌握设计模式的实现要点,最重要的是在学习设计模式当中掌握软件设计原则。设计模式是前人的实践经验总结出来的,具有固定的实现方式,但是设计原则是活的,是需要我们认真体会和领悟的。创建型模式之一(工厂方法模式)l名称:工厂方法模式(名称:工厂方法模式(Factory method pat
展开阅读全文