- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 面向对象的设计与实现;12.1 面向对象设计准则;(5)强内聚。设计中使用的一个构件内的各个元素,对完成一个定义明确的目的所做出的贡献程度。 在面向对象设计中存在下述3种内聚: ①服务内聚。一个服务仅完成一个功能。 ②类内聚。一个类有一个用途,它的属性和服务是高内聚的,都是完成该类对象的任务所必需的。如果某个类有多个用途,通常应将其分解成多个专用的类。 ③一般—特殊内聚。设计一般—特殊结构,这种结构是对相应领域知识的正确抽取。 (6)可重用。重用有两方面的含义:一是尽量使用已有的类;二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。软件成分的重用类别有:代码重用;分析结果重用;设计结果重用。;12.2 面向对象设计启发规则;12.3 面向对象的实现;12.3.1 面向对象语言;12.3.1 面向对象语言;12.3.1 面向对象语言;良好的程序设计风格对保证程序质量的重要性,它对面向对象实现来说尤其重要,不仅能明显减少维护或扩充的开销,而且有助于在新项目中重用已有的程序代码。 良好的面向对象程序设计风格,既包括传统的程序设计风格准则,也包括为适应面向对象方法所特有的概念而必须遵循的一些新准则。;1. 提高可重用性 2. 提高可扩充性 ① 提高方法的内聚; ① 把接口与实现分离; ② 减小方法的规模; ② 避免使用多分支语句; ③ 保持方法的一致性; ③ 精心确定公有方法。 ④ 全面覆盖输入条件; ⑤ 利用继承机制。 3. 提高健壮性 ① 预防用户的错误操作; ② 检查参数的合法性; ③不要预先确定限制条件; ④ 先测试后优化;这个过程是由OOA、OOD阶段生成的成果向OOP转换的重要过程。 ;1. 将类图映射为代码 (1)单个类映射为代码 ;(2)包映射为路径 包的名称是存放包中所含类的路径。要想使用包中的类,需要将包的父目录的路径添加到CLASSPATH (Java运行时的一个环境变量)中。;(3)继承机制的映射 ①类继承抽象类或具体类。 ②类继承接口。;(4)类间关联关系的映射 ①实现一对一关??关系。 ②实现一对多关联关系。;(4)类间关联关系的映射 ③映射受限关联。 ④实现一对多关联关系。 - 如果关联关系没有额外的属性,可以在每一方都使用向量或者散列表。 - 如果关联关系还有其他属性,那么对于关联关系的每个属性,关联对象之间的每条链接都有单独的值。需要单独的关联关系类来存放对象间的链接。关联关系类还可以用来存放关联关系的额外属性。;(4)类间关联关系的映射 ⑤ 映射聚合和组合关系。 应用“一对多”关联关系实现聚合关系和组合关系。 ;2. 活动图映射为代码 将活动图元素转换成程序代码的一般规则: (1)活动状态。将它转换成动作语句,如方法调用语句或计算性语句。 (2)条件分支。将它转换成if-then-else语句。 (3)并发分支。将每个控制流分配一个线程。 (4)循环。将活动图中的循环转换成while循环语句。 ;3. 状态图映射为代码 非主动对象构成的状态图转换成代码的原则如下: (1)将状态图映射为一个类。 (2)将消息映射为类的属性。 (3)将事件映射为一个方法,并将状态转换的条件和动作都映射到该方法中。 (4)对于具有顺序子状态的组合状态来说,有必要创建一个嵌套类用来实现这些顺序子状态。父状态机可以调用嵌套类的方法来处理嵌套状态图内部的状态转换。 (5)对于具有并发子状态的组合状态来说,可以创建嵌套类用来实现每个子状态。这种实现方法类似于实现嵌套状态图的方法。当所有并发子状态到达汇合点时,才会退出组合状态。;12.3.3 从设计产品到代码 ;4. 顺序图映射为代码 将顺序图映射为代码的一般规则: (1)将消息转换成适当的方法调用。例如,创建消息将被转换成接收消息的对象的构造方法,在Java中就是new语句。 (2)在接受消息的对象中添加一个方法,该方法名与消息名相同。 (3)将条件分支映射为if-then-else语句。 (4)使用线程实现主动对象。 (5)使用并发线程映射并发分支。;12.3.3 从设计产品到代码 ;面向对象软件测试的特点: (1)原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法在面向对象测试中不可行; (2)面向对象软件对每个开发阶段都有不同以往的要求和结果,不可能用功能细化的观点来检测面向对象分析和设计的结果; (3)针对面向
文档评论(0)