面向对象设计原则概述

转载 2013年12月04日 20:27:41

文章转载:http://blog.csdn.net/lovelion/article/details/7536532


 对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。

      面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则面向对象设计原则也是我们用于评价一个设计模式的使用效果的重要指标之一,在设计模式的学习中,大家经常会看到诸如“XXX模式符合XXX原则”、“XXX模式违反了XXX原则”这样的语句。

       最常见的7种面向对象设计原则如下表所示:

1  7种常用的面向对象设计原则

设计原则名称

  

使用频率

单一职责原则

(Single Responsibility Principle, SRP)

一个类只负责一个功能领域中的相应职责

★★★★☆

开闭原则

(Open-Closed Principle, OCP)

软件实体应对扩展开放,而对修改关闭

★★★★★

里氏代换原则

(Liskov Substitution Principle, LSP)

所有引用基类对象的地方能够透明地使用其子类的对象

 

★★★★★

依赖倒转原则

(Dependence  Inversion Principle, DIP)

抽象不应该依赖于细节,细节应该依赖于抽象

★★★★★

接口隔离原则

(Interface Segregation Principle, ISP)

使用多个专门的接口,而不使用单一的总接口

★★☆☆☆

合成复用原则

(Composite Reuse Principle, CRP)

尽量使用对象组合,而不是继承来达到复用的目的

 

★★★★☆

迪米特法则

(Law of Demeter, LoD)

一个软件实体应当尽可能少地与其他实体发生相互作用

★★★☆☆

【作者:刘伟  http://blog.csdn.net/lovelion


相关文章推荐

面向对象设计原则概述

  • 2011年02月24日 15:02
  • 8.29MB
  • 下载

初识面向对象设计--七大原则概述

面向对象设计有以下几种原则1.开闭原则 Open-Close Principle(OCP) 2.里氏替换原则 Liskov Substitution Principle(LSP) 3.单一职责原则...

面向对象设计原则概述

对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护...
  • LoveLion
  • LoveLion
  • 2012年05月04日 23:50
  • 15638

面向对象设计原则之概述

对于面向对象软件系统的设计而言,在支持可维护性的同时,提高软件系统的可复用性是一个至关重要额问题,如何同时提高一份软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可...

凭什么要用面向对象编程——面向对象重要设计原则概述

本文是我打算离开公司前的一次培训讲座的准备材料,讲得是几个面向对象的设计原则,没什么新鲜东西,都是比较浅显的内容,推荐刚接触面向对象编程的 新手阅读,高手达人们路过飘过即可。文章略长,不过内容过渡上比...

设计模式概述与设计模式之面向对象设计原则

一.概述1.为什么要学习设计模式? 首先,从招式与内功的角度来说,Jaca,C#,C++这些开发语言,Eclipse,Android Studio,IntelliJ IDEA,JSP以及各种框架...

面向对象的基本原则概述(1)

  • 2008年10月17日 14:44
  • 68KB
  • 下载

面向对象设计原则

  • 2013年05月30日 08:34
  • 1.83MB
  • 下载

面向对象的三个基本特征 和 五种设计原则

一、三个基本特征面向对象的三个基本特征是:封装、继承、多态。封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象设计原则概述
举报原因:
原因补充:

(最多只允许输入30个字)