- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模块化的目标? 完全独立性 完全独立有助于 理解 使用与复用 开发 修改 模块化的问题与困难 程序片段之间不可能是完全独立的 方法:实现尽可能的独立 低耦合Coupling Minimizing the relationships among modules 高内聚Cohesion Maximizing relationships among elements in the same module 模块间的联系 链接: Connections 对名字的使用或者对地址的访问 A connection is a reference to some label or address defined elsewhere 耦合就是衡量模块间链接的强度 强度越小,模块越独立 耦合强度衡量 耦合层次 THESES ARE FORBIDDEN! 内聚 Equal cohesion! Forbidden! 信息隐藏: David Parnas 模块化方法 1 按照处理流程,每个功能一个模块 模块化方法2 信息隐藏 每个模块有1或多个秘密Each module has one or more secrets” 每个模块实现了一个重要决策,而且只有自己知道细节 决策类型1:需求,即一个模块的接口功能与模块内部的程序细节分离 决策类型2:变化,将要发生变化的程序部分需要进行一个决策 不同决策之间互相独立 《On the criteria to be used in decomposing systems into modules》 模块化与信息隐藏 模块化=按功能设计 给出功能接口,隐藏功能实现程序的细节 信息隐藏=模块化+可修改性 给出功能接口,隐藏功能实现程序的细节 给出要修改部分的接口,隐藏待修改部分的实现程序细节 不要只是按照流程设计 从结构化到面向对象 模块+内聚/耦合标准=模块化 模块化+可修改性=信息隐藏 模块化+信息隐藏+(抽象数据类型、封装、继承、多态…)=面向对象 Barbara Jane Liskov Bertrand Meyer 《Object-Oriented Software Construction》 Bjarne Stroustrup (C++) 面向对象设计:理想的对象 单一职责 信息内聚 数据和行为互相支撑 功能内聚 只有一个职责 信息隐藏 只有一个秘密(需求或者可修改性) 继承符合多态思想 LSP Grady Booch 《Object-Oriented Analysis and Design》 Rebecca Wirfs-Brock Responsibility, Collaboration 面向对象设计原则 R.C. Martin,Design Principles and Design Patterns Single Responsibility Principle (SRP) Open/Closed Principle (OCP) Liskov Substitution Principle (LSP) a.k.a. Design by Contract Dependency Inversion Principle (DIP) Interface Segregation Principle (ISP) 设计模式 Creational Design Patterns Structural Patterns Behavioral Patterns Abstract Factory Builder Factory Method Prototype Singleton Adapter Bridge Composite Decorator Fa?ade Flyweight Proxy Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor 体现了内聚、耦合、信息隐藏等中层设计质量标准的惯用法 Erich Gamma etc. Design Patterns: Elements of Reusable Object-Oriented Software by 中层设计支持 UML:类图 UML:协作图 UML:状态图 … 中层设计评价 测试 持续集成 单元测试 评审 检查列表 度量 中层设计总结:外部表现与内部结构 外部表现:需求承载(职责分配) 内部结构:分割程序片段,隐藏程序片段(数据结构+算法)的实现细节,通过接口对外交互 评价质量标准:模块化?信息隐藏?OO设计原则 抽象层 接口层 精化层 实现层 数据结构的含义与使用 算法
原创力文档


文档评论(0)