第11篇 面向对象设计.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文档。上传文档
查看更多
第11章 面向对象设计 11.1 面向对象设计的准则 11.2 启发规则 11.3 软件重用 11.1 面向对象设计的准则 所谓优秀设计,就是权衡了各种因素,从而使得系统在其整个生命周期中的总开销最小的设计。对大多数软件系统而言,60%以上的软件费用都用于软件维护,因此,优秀软件设计的一个主要特点就是容易维护。 第5章曾经讲述了指导软件设计的几条基本原理,这些原理在进行面向对象设计时仍然成立,但是增加了一些与面向对象方法密切相关的新特点,从而具体化为下列的面向对象设计准则。 1.模块化 面向对象软件开发模式,很自然地支持了把系统分解成模块的设计原理:对象就是模块。它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。 3. 信息隐藏 在面向对象方法中,信息隐藏通过对象的封装性实现:类结构分离了接口与实现,从而支持了信息隐藏。对于类的用户来说,属性的表示方法和操作的实现算法都应该是隐藏的。 4. 弱耦合 (1)交互耦合 对象之间的耦合通过消息连接来实现,称交互耦合(尽量降低消息连接的复杂程度。应该尽量减少消息中包含的参数个数,降低参数的复杂程度。减少对象发送(或接收)的消息数。 (2) 继承耦合 与交互耦合相反,应该提高继承耦合程度。继承是一般化类与特殊类之间耦合的一种形式。如果一个派生类摒弃了它基类的许多属性,则它们之间是松耦合的。在设计时应该使特殊类尽量多继承并使用其一般化类的属性和服务,从而更紧密地耦合到其一般化类。 5. 强内聚 内聚衡量一个模块内各个元素彼此结合的紧密程度。在面向对象设计中存在下述3种内聚。 (1)服务内聚。一个服务应该完成一个且仅完成一个功能。 (2)类内聚。设计类的原则是,一个类应该只有一个用途,它的属性和服务应该是高内聚的。类的属性和服务应该全都是完成该类对象的任务所必需的,其中不包含无用的属性或服务。如果某个类有多个用途,通常应该把它分解成多个专用的类。 (3)一般-特殊内聚。设计出的一般-特殊结构,应该符合多数人的概念,更准确地说,这种结构应该是对相应的领域知识的正确抽取。 一般说来,紧密的继承耦合与高度的一般-特殊内聚是一致的。 6. 可重用 软件重用是提高软件开发生产率和目标系统质量的重要途径。重用基本上从设计阶段开始。重用有两方面的含义: 一是尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类); 二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。 11.2 启发规则 总结经验得出几条启发规则,它们往往能帮助软件开发人员提高面向对象设计的质量。 1.设计结果应该清晰易懂 保证设计结果清晰易懂的主要因素如下。 (1)用词一致:习惯的名字、不同类中相似服务的名字应该相同。 (2)使用已有的协议:类的协议、消息协议 (3)避免模糊的定义:类的用途应该是有限的 2.一般-特殊结构的深度应适当 应该使类等级中包含的层次数适当。一般说来,在一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为7±2。不应该仅仅从方便编码的角度出发随意创建派生类,应该使一般-特殊结构与领域知识或常识保持一致。 (1) 有明确的定义,分配给每个类的任务应该简单,避免包含过多的属性。属性过多通常表明这个类过分复杂了,它所完成的功能可能太多了。 (2) 尽量简化对象之间的合作关系。如果需要多个对象协同配合才能做好一件事,则破坏了类的简明性和清晰性。 (3) 不要提供太多服务。一个类提供的服务过多,同样表明这个类过分复杂。典型地,一个类提供的公共服务不超过7个。 4.使用简单的协议 一般说来,消息中的参数不要超过3个。经验表明,通过复杂消息相互关联的对象是紧耦合的,对一个对象的修改往往导致其他对象的修改。 6.把设计变动减至最小 通常,设计的质量越高,设计结果保持不变的时间也越长。即使出现必须修改设计的情况,也应该使修改的范围尽可能小。在设计的早期阶段,变动较大,随着时间推移,设计方案日趋成熟,改动也越来越小了。 11.3 软件重用 11.3.1 概述 1.重用 重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。广义地说,软件重用可分为以下3个层次: 2. 软件成分的重用级别 软件成分的重用可以进一步划分成以下3个级别: (1) 代码重用 人们谈论得最多的是代码重用,通常把它理解为调用库中的模块。实际上,代码重用也可以采用下列几种形式中的任何一种: 源代码剪贴:这是最原始的重用形式。这种重用方式的缺点,是复制或修改原有代码时可能出错,更糟糕的是,存在严重的配置管理问题,人们几乎无法跟踪原始代码块多次修

文档评论(0)

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

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

1亿VIP精品文档

相关文档