第8章设计模式及其应用.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 设计模式及其应用 设计模式概述 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。 设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。 面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。 GoF 23 种设计模式 历史性著作《设计模式:可复用面向对象软件的基础》一书中描述了23种经典面向对象设计模式,创立了模式在软件设计中的地位。该书四位作者被人们并称为Gang of Four (GoF),“四人组”,该书描述的23种经典设计模式又被人们称为GoF23种设计模式。 由于《设计模式:可复用面向对象软件的基础》一书确定了设计模式的地位,人们通常所说的设计模式隐含地表示“面向对象设计模式”。但这并不意味“设计模式”就等于“面向对象设计模式”,也不意味着GoF 23种模式就表示了所有的“面向对象设计模式”。除了“面向对象设计模式”外,还有其他设计模式。除了GoF23种设计模式外,还有更多的面向对象设计模式。 设计模式与面向对象 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”是那些可以满足“应对变化,提高复用”的设计。 面向对象设计模式描述的是软件设计,因此它是独立于编程语言的,但是面向对象设计模式的最终实现仍然要使用面向对象编程语言来表达。 面向对象设计模式不像算法技巧,可以照搬照用,它是建立在对“面向对象”纯熟、深入的理解的基础上的经验性认识。掌握面向对象设计模式的前提是首先掌握“面向对象”! 从编程语言直观了解面向对象 各种面向对象编程语言相互有别,但都能看到它们对面向对象三大机制的支持,即: “封装、继承、多态” 封装,隐藏内部实现 继承,复用现有代码 多态,改写对象行为 使用面向对象编程语言(如java/C#),可以推动程序员以面向对象的思维来思考软件设计结构,从而强化面向对象的编程范式。 但OOPL并非面向对象的全部 OOPL没有回答面向对象的根本性问题——我们为什么要使用面向对象?我们应该怎样使用三大机制来实现“好的面向对象”? 我们应该遵循什么样的面向对象原则? 任何一个严肃的面向对象程序员,都需要系统地学习面向对象的知识,单纯从编程语言上获得的面向对象知识,不能够胜任面向对象设计与开发。 重新认识面向对象 对象是什么? 从概念层面讲,对象是某种拥有责任的抽象。 从规格层面讲,对象是一系列可以被其他对象使用的公共接口。 从语言实现层面来看,对象封装了代码和数据。 有了这些认识之后,怎样才能设计“好的面向对象”? 遵循一定的面向对象设计原则 熟悉一些典型的面向对象设计模式 面向对象设计原则 面向对象设计原则概述 软件的复用(Reuse)或重用拥有众多优点,如可以提高软件的开发效率,提高软件质量,节约开发成本,恰当的复用还可以改善系统的可维护性。 面向对象设计复用的目标在于实现支持可维护性的复用。 在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。 面向对象设计原则概述 面向对象设计原则和设计模式也是对系统进行合理重构的指南针. 重构(Refactoring)是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。 面向对象设计原则概述 面向对象设计原则简介 常用的面向对象设计原则包括七个,这些原则并不是孤立存在的,它们相互依赖,相互补充。 单一职责原则 单一职责原则定义 单一职责原则(Single Responsibility Principle, SRP)定义如下: 在软件系统中,一个类只负责一个功能领域中的相应职责。 另一种定义方式如下: 就一个类而言,应该仅有一个引起它变化的原因。 单一职责原则 单一职责原则分析 一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性越小。而且如果一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作。 类的职责主要包括两个方面:数据职责和行为职责,数据职责通过其属性来体现,而行为职责通过其方法来体现。 单一职责原则是实现高内聚、低耦合的指导方针,在很多代码重构手法中都能找到它的存在,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关重构经验。 单一职责原则 单一职责原则实例 实例说明 某基于Java的C/S系统的“登录功能”通过如下登录类(Login)实现: 现使用单一职责原则对其进行重构。 开闭原则 开

您可能关注的文档

文档评论(0)

天马行空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档