第5章面向对象设计.pptVIP

  • 6
  • 0
  • 约8.28千字
  • 约 40页
  • 2018-05-22 发布于河南
  • 举报
第5章面向对象设计

第5章 面向对象设计 戴立红 5.1 面向对象设计概述 面向对象分析(OOA):建立问题域精确模型的过程。面向对象设计(OOD) :是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。 面向对象设计就是用面向对象观点建立求解域模型的过程。 尽管分析和设计的定义有明显的区别,但实际的软件开发过程中两者的界限是模糊的。 许多分析结果可以直接映射成设计结果。而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。分析和设计活动是一个多次反复迭代的过程。 面向对象方法学在概念和表示方法上的一致性,保证了各项开发活动之间的平滑过渡。 5.2面向对象设计的准则 一、模块化 二、抽象 三、信息隐藏 四、弱耦合 五、强内聚 六、可重用 5.2面向对象设计的准则 一、模块化 面向对象开发方法很自然地支持了把系统分解成模块的设计原则:对象就是模块。它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。 二、抽象 面向对象方法不仅支持过程抽象,而且支持数据抽象。 此外,某些面向对象的程序设计语言还支持参数化抽象。所谓参数化抽象,是指当描述类的规格说明并不具体指定所要操作的数据类型,而是把数据类型作为参数。这使得类的抽象程度更高,可重用性更高。例如C++语言提供的模板机制就是一种参数化抽象机制。 5.2面向对象设计的准则 三、信息隐藏 在面向对象方法中,信息隐藏通过对象的封装性来实现。对于类的使用者来说,属性的表示方法和操作的实现算法都应该是隐藏的。 四、弱耦合 耦合指一个软件结构内不同模块之间互联的紧密程度。在面向对象方法中,对象是最基本的模块,因此,耦合主要指不同对象之间相互关联的紧密程度。 弱耦合是优秀设计的一个重要标准,因为这有助于使得系统中某一部分的变化对其它部分的影响降到最低程度。 反之,如果一类对象过多地依赖其他类对象来完成自己的工作,则不仅给理解、测试或修改这个类带来很大困难,而且还将大大降低该类的可重用性和可移植性。 5.2面向对象设计的准则 五、强内聚 内聚定义:设计中使用的一个构件内的各个元素对完成一个定义明确的目的所做出的贡献程度。在设计中应该力求做到高内聚。 在面向对象设计中存在下述三种内聚。 1、服务内聚 一个服务应该完成一个且仅完成一个功能。 2、类内聚 设计类的原则是一个类应该只有一个用途,它的属性和服务应该是高内聚的。 类的属性和服务应该全都是完成类对象的任务所必需的,其中不包含无用的属性或服务。 如果某个类有多个用途,通常应该把它分解成多个专用的类。 3、一般—特殊内聚 设计出的一般—特殊结构,应该符合多数人的概念,应该对应领域知识的正确抽取。紧密的继承耦合与高度的一般—特殊内聚是一致的。 5.2面向对象设计的准则 六、可重用 软件重用是提高软件开发生产率和目标系统质量的重要途径。 重用有两方面的含义: 一是尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类)。 二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。 5.3面向对象设计主要步骤 在OOA阶段只考虑问题域和系统责任,OOD则要考虑与具体实现有关的问题,需要对OOA结果的补充与调整。 将OOA模型搬到OOD,进行必要的调整,作为OOD模型的问题域部分设计;补充与实现有关的因素:图形用户界面系统——人机交互部分设计;硬件、操作系统及网络——控制驱动部分设计;数据管理系统——数据管理部分设计;其他如编程语言、可复用构件库——构件部署设计。 OOD过程的五个部分:问题域部分设计;人机交互部分的设计;控制驱动部分设计;数据管理部分设计;构件部署设计。五个部分之间不强调次序。 5.3面向对象设计主要步骤 5.3.1问题域部分的设计 对OOA结果按实现条件进行补充与调整就是问题域部分。 1、针对编程语言支持能力的调整 1) 对继承的调整 当编程语言不支持多继承时,需要对多继承进行调整。 有些情况下,可将继承用整体-部分结构替换。一般-特殊结构和整体-部分结构存在着共性——都是使一个类的对象能够拥有另一个类的属性和操作。 将本来在一般类中显式定义的信息分离出来,作为部分对象,以原来的特殊类作为整体对象。 将多继承转化成一个单继承和一个整体-部分结构。 5.3面向对象设计主要步骤 5.3.1问题域部分的设计 1、针对编程语言支持能力的调整 对继承的调整 5.3面向对象设计主要步骤 5.3.1问题域部分的设计 1、针对编程语言支持能力的调整 2) 对多态性的调整 如果编程语言不支持多态机制,可将在原来在一般类中定义的多态性的操作去掉,分别在特殊类中定义该操作并分别实现。相应的一些属性做必要的调整。 2、增加一般类,提供共同协议 将所有的具有相似协议的类组织在一起,提供通

文档评论(0)

1亿VIP精品文档

相关文档