网站大量收购独家精品文档,联系QQ:2885784924

第九讲:面向对象的设计-刘春.ppt

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九讲:面向对象的设计-刘春

1:1关联 1:n关联 * 内容提纲 面向对象设计方法概述 系统设计 软件体系结构设计 硬件体系结构设计 详细设计 对象设计 对象持久化设计 面向对象的设计原则 设计模式 系统设计审查就是对所设计的系统和系统设计规格说明报告逐一进行严格审查,检查是否达到系统设计功能要求。 如果发现系统功能没有达到用例的要求或有遗漏,一次返回逐步检查,找到问题所在,补充设计实现其功能。 这是一个反复迭代的过程。追求一个好的设计,以及设计完成后评价它是不是好的设计,不是一个笼统的概念,有一些具体的评价准则。 评审设计 单一职责原则 开放-封闭原则 接口隔离原则 Liskov替换原则 依赖倒置原则 面向对象设计原则 一个类只完成某一类功能(职责) 尽可能避免出现一个“复合”功能的类——在同一个类中完成多个不同的功能 1、单一职责原则 开放?封闭原则:软件实体类(类、模块、函数等)应该是可以扩展、但是不可修改的 基本思想:不用修改原有类就能扩展一个类的行为 2、开放?封闭原则 什么是不封闭、不开放 如下的模型可以处理月薪制和时薪制职工工资,如果还要增加一种职工类型,其计酬方式不同(如提成制),则必定要修改Employee类 如何改进 利用抽象机制 封闭:Employee及其子类是封闭的 开放:可以派生新的子类,实现新的需求 Liskov 替换原则:子类应当可以替换父类并出现在父类能够出现的任何地方 核心思想:子类型必须能够替换它们的基类型,该原则能够知道设计人员正确地进行类的继承与派生 3、Liskov 替换原则 一个违反Liskov原则的例子 正方形是长方形的一种特例 正方形有独特的行为方式 通过覆盖父类的有关方法来实现子类行为 实际中的使用情况 长方形的使用者按照长方形的特点来调用SetWidth和SetHeight两个函数,并测试面积,代码如下: void testArea(Rectangle r) { r.SetWidth(5); r.SetHeight(4); assert(r.Area() == 20); } 如果传递进来的是Square对象又会如何呢?显然会出现断言错误,测试失败。 对于客户程序来说,模型中的层次结构是脆弱的,因为违反了LSP替换原则,Square对象和Rectangle对象的行为方式不相容 4、接口隔离原则 接口隔离原则:采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口更好。 对接口的污染 设计人员为了节省接口数目,而经常将一些功能相近或功能相关的接口合并成一个总的接口 臃肿的大接口 面向过程——自顶向下,逐步求精,形成上对下依赖 依赖倒置原则:应用系统中的高层模块不应依赖于底层模块;抽象不应该依赖于细节实现,实现细节应该依赖于抽象。 优点:复用、灵活性、易维护 5、依赖倒置原则 * 内容提纲 面向对象设计方法概述 系统设计 软件体系结构设计 硬件体系结构设计 详细设计 对象设计 对象持久化设计 面向对象的设计原则 设计模式 如何遵守设计原则 设计原则不是死记硬背,而是要灵活运用 一些成熟的设计模式可以帮助我们解决实际问题,并且符合设计原则 广义上讲:设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。 狭义上讲:设计模式就是对特定问题的描述或解决方案,往往直接对应一段程序代码。 设 计 模 式 作用:记录和提炼了软件人员在面向对象软件设计中的成功经验和问题的解决方案,是系统可复用的基础。正确地使用设计模式,有助于快速开发出可复用的系统。 意义: 优化的设计经验 极高的复用性 丰富的表达能力 极低的耦合度 设计模式的作用和研究意义 1. 抽象工厂(Abstract Factory)模式 2. 适配器(Adapter)模式 3. 策略(Strategy)模式 4. 外观(Facade pattern)模式 经典设计模式 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程,二者需要多次反复迭代。 OOD 主要包括两个方面:系统设计和详细设计。 系统设计包括软件体系结构设计和硬件体系结构设计 详细设计包括对象设计和对象持久化设计 五个设计原则和设计模式 小结 小 结 结构化设计主要解决如何将需求分析阶段的DFD 图推导为软件系统结构,并用它提供的结构图描述之。 系统设计时要遵循模块化、自顶向下逐步求精的基本思想。 详细设计着重对各个模块的逻辑进行详细设计。 作业 针对实验课自己选的系统,结合上次面向对象分析所布置的作业,进行系统的面向对象设计 主要任务: 基于上次面向对象分析的作业中自己所选定的一个用例,识别类与对象、建立对象模型,并进行详细设计 每个人都要做,一个组不能交一份,每个人要基于不同的用例来做 * 系统设计的第一步就是确定

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档