- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象设计Object-OrientedDesign
第十一章 面向对象设计(Object-Oriented Design) §1. OOD准则:优秀软件设计的一个重要特点是容易维护 §2. 启发式规则 1、设计结果清晰易懂,应做到: ① 用词一致 —— 按习惯用法命名。不同classes中相似的methods最好取同一名字。 ② 使用已有的protocol。 ③ 尽量减少message模式的数目。 ④ 避免模糊定义。 §5. 设计类中的服务 —— 细化object model中的 methods §6. 设计关联 * 回顾:SD准则包括 ? Modularization ? Abstraction ? Information hiding ? Module independence 对于 OOD有类似的准则: 1、Module = Object §1. OOD准则 ? Procedure abstraction: 在SD中已讨论 ? Data abstraction: Class即是一种抽象数据类型。外界无须知道实现方法就可按照类协议(class description protocol)* 使用class中定义的数据。 ? Parameter abstraction: 将数据类型作为参数处理。 * Class description protocol : The complete definition of all properties, features, and methods that are descriptive of any object that is an instance of a class. [Timothy Budd An Introduction to Object-Oriented Programming Addison-Wesley Publishing Company, Inc. 1991] 2、Abstraction:抽出事物的本质特性, 暂不考虑其细节,使设计从具体实现方法中超脱。 §1. OOD准则 例:C++ 中的“模板”(template) template class T, int n class array_n { private : T items [n] ; // 定义了T类型的向量元素共n个 } ; main ( ) { …… array_n complex, 1000 w ; //w是有1000个元素的复向量 …… } §1. OOD准则 3、Information hiding = Encapsulation of object 4、Coupling: ? 交互耦合(interactive coupling):通过传递message发生要求 降低参数个数和参数复杂性 减少objects发送 \ 接收message的个数 ? as loose as possible ? 继承耦合(inheritance coupling): 要求 Parent class IS_A child class ? as high as possible §1. OOD准则 ? 一般-特殊内聚(general-particular cohesion): High g-p cohesion ? High inheritance coupling 5、Cohesion: ? 服务内聚(service cohesion):一个服务只完成一个功能。 ? 类内聚(class cohesion):一个类只有一个用途,否则分解之。 6、Reusability(详见§3) 2、一般-特殊结构的深度应适当(约100个classes,则设计7±2层) §2. 启发式规则 3、设计简单的class(定义不超过一页纸或两屏)。应注意: ① 避免过多attributes; ② 能用简单的语句描述一个class的任务; ③ objects之间合作关系要简单; ④避免过多methods(? 7个)。 问题:设计出大量的classes,使结构复杂度增加。 解决:划分主题,提高可理解性。 4、使用简单的protocol
您可能关注的文档
- 政工程质量安全事项监管.DOC
- 攀枝花东区教育局部分学校监控设备采购项目.DOC
- 政策范围分类政策出台频率分析1985年-2016年.PPT
- 文本造型和视点.PPT
- 新乡中小学综合实践活动课程优秀成果.DOC
- 新乡职业教育中心数控理实一体化与机械测绘项目.DOC
- 新兴全面推行河长制.DOC
- 新昌人民医院监护型救护车采购项目.DOC
- 新昌人民医院移动护理PDA设备采购项目采购要素.DOC
- 矿井地质工作-风险管理一点通.DOC
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)