ch06第6章 软件设计模式基础.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* Harbin University of Commerce * THE SCHOOL OF SOFTWARE ENGINEERING OF HUST School of Computer and Information Engineering Harbin University of Commerce 华中科技大学软件学院 THE SCHOOL OF SOFTWARE ENGINEERING OF HUST 第5章 软件设计模式基础 5.1 设计模式的概念 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式帮助你做出有利于系统复用的选择,避免设计损害了系统复用性。通过提供一个显式类和对象作用关系以及它们之间潜在联系的说明规范,设计模式甚至能够提高已有系统的文档管理和系统维护的有效性。简而言之,设计模式可以帮助设计者更快更好地完成系统设计。 5.1.1 什么是设计模式 模式是一种特别巧妙和敏锐的用以解决某类特定问题的最通用和灵活的解决办法。 模式体现的是程序整体的构思,所以有时候它也会出现在分析或者是概要设计阶段 增加一个抽象层,把变化的东西从那些不变的东西里分离出来。 5.1.2 模式的基本要素 模式名称(pattern name) :一个助记名,它用一两个词来描述模式的问题、解决方案和效果。 问题(problem):描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。 解决方案(solution) :描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。 效果(consequences) :描述了模式应用的效果及使用模式应权衡的问题。 5.1.3 成功采用设计模式的三个步骤 强大的通信和培训:许多机构拥有领先技术,可能正式通过了设计师论坛的论证或者非正式的公认专家。这些领先厂商将推广设计模式采用中的开放通信,并将培训开发具体设计模式的团队。 设计模式采用指导:设计模式可用于使项目受益,但是他们也可能因为误用而对应用程序造成损害。应当鼓励采用他们,但是对其的采用应当受到审阅和验证。 重用实现,不只是设计模式 设计模式的本质是代码重用,可以灵活把握 其他可重用的类(取决于公共实现) 缩短开发时间和降低成本 缩短维护时间和降低成本 在应用程序之间和内部轻松集成。 5.2 设计模式的原则 近年来,大家都开始注意设计模式。那么,到底我们为什么要用设计模式呢?这么多设计模式为什么要这么设计呢?为什么要提倡Design Pattern呢?根本原因是为了代码复用,增加可维护性。那么怎么才能实现代码复用呢?OO界有前辈的几个原则:开-闭原则(Open Closed Principal)、里氏代换原则、合成复用原则。设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。下面就简单地介绍下几个基本的软件设计原则。 5.2.1 开放封闭原则(OCP) 定义:软件对扩展应该是开发的,对修改应该是关闭的。更通俗的表达就是说开发一个软件时,应该可以对它进行功能扩展(开放),而在进行这些扩展的时候,不需要对原来的程序进行修改(关闭)。 好处: 在软件可用性上非常灵活。可以在软件完成对软件进行扩展,加入新的功能。这样,这个软件就可以通过不断的增加新模块满足不断变化的新需求。 由于对软件原来的模块不能修改,因此不用担心软件的稳定性。 5.2.1 开放封闭原则(OCP) 实现的主要原则:抽象,把系统的所有可能的行为抽象成一个抽象底层 ;同时由于可以从抽象层导出一个或多个新的具体类可改变系统的行为,因此对于可变的部分,系统设计对扩展是开放的。 可变性封装原则(EVP ):对系统所有可能发生变化的部分进行评估和分类,每一个可变的因素都单独进行封装 开闭原则很难被完全实现,只能在某些模块、某种程度上、某个限度内符合OCP的要求,OCP具有理想主义的色彩, 5.2.2 单一职责原则(SRP) 定义:就一个类而言,应该仅有一个引起它变化的原因。 职责即功能 每一个引起类变化的原因就是一个职责,当一个类具有多个职责时,应该把多余的职责分离出去,分别再创建一些类来完成每一个职责 每一个职责都是一个变化的轴线,当需求变化时会反映为类的职责的变化。 举

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档