0第三章 设计模式.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
0第三章 设计模式

2001-03-25 软件设计与体系结构 Software Design and Architecture 第3章 设计模式 设计模式:design pattern 简单地讲,所谓模式,就是得到很好研究范例。设计模式就是设计范例。 在孙子兵法中充斥着各种模式,孙子说,“置于死地而后生”就是战争模式。 36计条条都是模式,比如“走为上”,“空城计”也都是战争模式。 这些模式中每一个都具有典型意义,具有学习价值。通过研究这些模式,学习者可以相互交流,可以在自己实战中举一反三,推陈出新,加以应用。 面向对象软件设计过程 找出与当前问题相关的对象; 以适当的颗粒度将它们归类; 定义类的接口和继承层次; 建立对象间的基本关系。 设计目标 设计应该对手头的问题有针对性; 同时对将来的问题和需求也要有足够的通用性; 避免重复设计或尽可能少做重复设计。 设计的困难 有经验的面向对象设计者会告诉你: 要一下子就得到复用性和灵活性好的设计,即使不是不可能的,至少也是非常困难的。 一个设计在最终完成之前常要被复用好几次,而且每一次都有所修改。 新手的弱势 有经验的面向对象设计者的确能做出良好的设计,而新手则面对众多选择无从下手,总是求助于以前使用过的非面向对象技术。新手需要花费较长时间领会良好的面向对象设计是怎么回事。 内行设计者 不是解决任何问题都要从头做起,他们更愿意复用以前使用过的解决方案。当找到一个好的解决方案,他们会一遍又一遍地使用。这些经验成为内行的部分原因。 因此,你会在许多面向对象系统中看到类和相互通信的对象的重复模式。这些模式解决特定的设计问题,使面向对象设计更灵活、优雅,最终复用性更好。它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。 一个熟悉这些模式的设计者不需要再去发现它们,而能够立即将它们应用于设计问题中。 类比 小说家和剧本作家很少从头开始设计剧情,他们总是沿用一些业已存在的模式,像“悲剧性英雄”模式(《麦克白》、《哈姆雷特》等)或“浪漫小说”模式(存在着无数浪漫小说)。 同样地,面向对象设计员也沿袭一些模式,像“用对象表示状态”和“修饰对象以便于你能容易地添加/删除属性”等。 一旦懂得了模式,许多设计决策自然而然就产生了。 设计模式 将面向对象的设计经验作为设计模式记录下来。 每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计。 目标是将设计经验以人们能够有效利用的形式记录下来。 鉴于此目的,编写了一些最重要的设计模式,并以编目分类的形式将它们展现出来。 设计模式的作用 设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将以证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式帮助你做出有利于系统复用的选择,避免设计损害了系统复用性。 通过提供一个显式类和对象作用关系以及它们之间潜在联系的说明规范,设计模式甚至能够提高已有系统的文档管理和系统维护的有效性。简而言之,设计模式可以帮助设计者更快更好地完成系统设计。 什么是设计模式? Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。 尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式,只是在面向对象的解决方案里,我们用对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。 模式的四个基本要素: 模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。 问题(problem) 描述了应该在何时使用模式。它解释设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 模式的四个基本要素(续): 解决方案(solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。 模式的四个基本要素(续) : 效果(consequences) 描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。 软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档