- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象的原则和方法
四.开放-封闭原则 看起来我们所做的就是将问题推迟到另一个类中。但是使用该解决方案,我们可通过改变Part对象,在运行期间动态地来设定计价的策略。 另一个解决方案是使每个ConcretePart从数据库或属性文件中获取其当前的价格。 四.开放-封闭原则 总结 一个软件系统的所有模块不可能都满足OCP,但是我们应该努力最小化这些不满足OCP的模块数量。 开放-封闭法则是OO设计的真正核心。 符合该法则便意味着最高等级的复用性(reusability)和可维护性(maintainability)。 五.Liskov替换原则 Function Thar Use Referennces To Base(Super) Classes Must Be Able To Use Objects Of Derived(Sub) Classes Without Knowing It 五.Liskov替换原则 使用指向基类(超类)的引用的函数,必须能够在不知道具体派生类(子类)对象类型的情况下使用它们。 LSP是关于继承机制的应用原则,是实现开放封闭原则的具体性规范,违反了Liskov原则也就违法了开放封闭原则;只有子类能够替换其基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。子类可以替换基类,但基类不可以替换子类。 五.Liskov替换原则 五.Liskov替换原则 五.Liskov替换原则 五.Liskov替换原则 五.Liskov替换原则 这里的问题出在哪里呢?编写testLsp()方法的程序员做了一个合理的假设,即改变Rectangle的宽而保持它的高不变。 在将一个Square对象传递给这样一个方法时产生了问题,显然是违背了LSP Square和Rectangle类是相互一致和合法的。尽管程序员对基类作了合理的假设,但其所编写的方法仍然会导致设计模型的失败。 不能孤立地去看待解决方案,必须根据设计用户所做的合理假设来看待它们。 一个数学意义上的正方形可能是一个四边形,但是一个Square对象不是一个Rectangle对象,因为一个Square对象的行为与一个Rectangle对象的行为是不一致的! 从行为上来说,一个Square不是一个Rectangle!一个Square对象与一个Rectangle对象之间不具有多态的特征。 五.Liskov替换原则 总结 Liskov替换法则(LSP)清楚地表明了ISA关系全部都是与行为有关的。 为了保持LSP(并与开放-封闭法则一起),所有子类必须符合使用基类的client所期望的行为。 一个子类型不得具有比基类型(base type)更多的限制,可能这对于基类型来说是合法的,但是可能会因为违背子类型的其中一个额外限制,从而违背了LSP! LSP保证一个子类总是能够被用在其基类可以出现的地方! 六.依赖倒置原则 Dependency Inversion Principle 六.依赖倒置原则 依赖倒置原则(DIP,Dependency Inversion Principle):通过抽象机制有效的解决类层次之间的关系,降低耦合的力度,实现对抽象的依赖是依赖倒置原则的核心。 具体而言,它体现在: ?高层模块不应该依赖于底层模块,二者都应该依赖于抽象。 抽象不应该依赖于具体,具体应该依赖于抽象。 六.依赖倒置原则 六.依赖倒置原则 总结 抽象的稳定性决定了系统的稳定性,因为抽象是保持不变的。 依赖于抽象是一个通用的规则,而某些时候依赖于细节则是在所难免的,必须在抽象和实现之间权衡选择。 对接口编程,不要对实现编程。 七.接口隔离原则 接口隔离原则(ISP,Interface Segregation Principle):使用过个小的专门的接口,而不要使用一个大的总接口。 从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小接口上的.使用多个专门的接口比使用单一的总接口要好. 七.接口隔离原则 七.接口隔离原则 其他原则和方法 Law of Demeter or Least Knowlegde Principle(LoD or LKP),迪米特法则或最少知识原则,这个原则首次在Demeter系统中得到正式运用,所以定义为迪米特法则。它讲的是“一个对象应当尽可能少的去了解其他对象”。 也就是又一个关于如何松耦合(Loosely-Coupled)的法则 ……. 答疑 谢 谢! 第 1 页 面向对象的原则和方法 北京恒华伟业科技股份有限公司 提 纲 目的、介绍、来源 常见的七种设计原则 其他原则和方法 答疑 目的 原则或方法 来源 内容的来源: 《一些面向对象的原则和方法》 《设计模式》 …… 一.单一职责链原则 一.单一职责链
您可能关注的文档
最近下载
- 中国高尔夫差点系统会员入会申请书.doc
- 江苏国泰(002091)公司2023年财务分析研究报告.doc
- 2024执业药师继续教育药物分析(3)参考答案.docx
- DB11T 383-2023 建筑工程施工现场安全资料管理规程.docx
- 总体国家安全观授课.pptx VIP
- 一种聚4-甲基-1-戊烯中空纤维膜的制备方法.pdf VIP
- DB11T 1832.2-2023 建筑工程施工工艺规程 第2部分:防水工程.docx
- 普外科麻醉科运用PDCA循环提高患者术后自控镇痛有效率QCC品管圈成果汇报书.docx
- 海信BCD-203FH电冰箱使用说明书.pdf
- 哈工大尹海洁社会统计学(第2版)课后习题答案.docx
文档评论(0)