面向对象设计应遵循的原则重点.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象设计中应遵循的五大原则 2012-04-23~2012-05-02 目录 单一职责原则 接口隔离原则 依赖倒置原则 开放闭合原则 Liskov替换原则 如何正确进行类的设计 面向对象设计和编程概述 单一职责原则 为什么要遵守单一职责原则 为什么要遵守单一职责原则 遵守单一职责原则的各种GOF设计模式 遵守单一职责原则的各种GOF设计模式 遵守单一职责原则的各种GOF设计模式 接口隔离原则 接口隔离原则 接口隔离原则 依赖倒置原则(Dependency Inversion Principle) * 由于面向对象编程技术中的继承在具体的编程中过于简单,在许多系统的设计和编程实现中,我们并没有认真地,理性地思考应用系统中各个类之间的继承关系是否合适,派生类是否能正确地对其基类中的某些方法进行重写等问题。因此经常出现滥用继承或者错误的进行了继承等现象,给系统的后期维护带来难以估计的麻烦。 在本单元重点了解如下知识点 单一职责原则(SRP) 接口隔离原则(ISP) 依赖倒置原则(DIP) 开放-封闭”原则(OCP) Liskov替换原则(LSP) 遵守面向对象设计中的“五大原则” 1、面向对象设计(OOD)和面向对象编程语言(OOPL) Object-Oriented Programming Language可以提高程序的封装性、复用性、可维护性,但仅仅是“可以”。 让我们开始涉猎软件系统设计的思想、原则和模式方面的内容… Robert C.Martin在《敏捷软件开发——原则、方法与实践》一书中总结出了“单一职责原则”。 让我们先从“单一职责原则”开始吧… 2、能不能真正实现OOD和OOPL所体现出的这些“优点”? 取决于设计和编程人员具体“如何做”。 3、那么如何能够达到如此“境界”? 有什么设计思想、设计原则和设计模式吗? 1、什么是SRP(Single-Responsibility Principle) 一个类应该仅有一个引起它的变化的原因(职责),这条原则也称为类设计的“高内聚性原则”。 (l)含义之一 避免相同的职责(也称为功能)分散到不同的类中实现 (2)含义之二 也应该要避免一个类承担过多的职责。 少管闲事,专心做一件事情!“一心无二用”! 它指导我们如何提高代码的可重用度! (1)可以减少类之间的耦合 你知道为什么“螺钉”的可重用性高! 主要的责任在“方丈” 当需求变化时,只修改一个类,从而也就隔离了变化; 如果一个类有多个不同的职责,它们就耦合在一起,当一个职责发生变化时,可能会影响其它的职责。 (2)不遵守单一职责原则的后果 会影响到对该类的复用性。 当只需要复用该类的某一个职责时,由于它和其它的职责耦合在一起,也就很难分离出。 (3)遵守单一职责原则的示例 3、遵守单一职责原则的各种GOF设计模式 类的设计主要工作是“发现职责”并“分离职责”! (1)工厂模式的应用 分离对象的“创建”和对象的“使用”方面的职责。 分离 “共性功能实现”和“个性扩展”方面的职责。 (2)模板方法模式的应用 (3)命令模式的应用 分离“命令的请求者”和“命令的实现者”方面的职责。 (4)代理模式的应用 分离 “服务的请求者”和“服务的提供者”各自方面的职责; 应用业务代理类的主要的目的是降低客户端与业务组件之间的紧密关联性和提高业务功能组件类的安全性。 希望大家掌握对这些基本的模式的具体应用! 4、遵守单一职责原则的系统架构设计 (1)单一职责原则不只是对类设计有意义,对以模块、子系统为单位的系统架构设计同样也有意义 一个模块、子系统也应该仅有一个引起它变化的原因,如MVC所倡导的各个层之间的相互分离其实就是单一职责原则在系统总体设计中的应用。 (2)Struts2框架中应用代理模式的示例 1、接口隔离原则(ISP)的具体体现 (1)一个类对另外一个类的依赖性应当是建立在最小的接口上 ISP可以达到不强迫客户(接口的使用方)依赖于他们不用的方法——在接口设计中应该保证,接口的实现类应该只呈现为单一职责的角色(遵守SRP原则); ISP还可以降低客户之间的相互影响——当某个客户程序要求提供新的职责(需求变化)而迫使接口发生改变时,影响到其他客户程序的可能性会最小。 它指导我们如何正确地进行接口设计! (2)客户端程序不应该依赖它不需要的接口方法(功能) 比如在应用继承时,由于子类将继承父类中的所有可用的方法;而父类中的某些方法,在子类中可能并不需要,但也将被父类强迫使用?! 因此,谨用继承! 2、对接口的污染(过于臃肿的接口设计是对接口的污染) (l)接口的污染(Interface Contamination)

文档评论(0)

美洲行 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档