开闭原则(Open-Closed Principle,或者OCP)

转载 2007年09月24日 17:39:00
开闭原则讲的是:一个软件实体应当对扩展是开放的,对修改关闭。

 

满足开闭原则的设计可以给一个软件系统两个无可比拟的优越性:
1、 通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新的需求,使变化中的软件系统有一定的适应性和灵活性。
2、 已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延伸性。
具有这两个有点的软件系统是一个在高层次上实现了复用的系统,也是一个易于维护和扩展的系统。

 

A、 抽象化是关键:

 

在JAVA语言里,可以给出一个或多个抽象JAVA类或JAVA接口,规定出所有的具体类必须提供的方法的特征(Signature)作为系统设计的抽象层。
1、 这个抽象层预见了所有的可能扩展,因此,在任何扩展情况下都不会改变。(闭)
2、 从抽象层导出一个或多个新的具体类可以改变系统的行为。(开)

B、 可变性的封装:

 

开闭原则从另一个角度来讲,就是所谓的对可变性的封装。找到一个系统的可变因素,将它封装起来。
1、 一种可变性不应当散落在代码的很多角落,而应当被封装在一个对象里面。同一种可变性的不同表象意味着同一个继承等级结构中的具体子类。
2、 一种可变性不应当与另一种可变性混合在一起。

 

例:
http://liudang.blogbus.com/files/1155200824.jpg
尽管在很多情况下,无法百分之百地做到开闭原则,但是如果向这个方向上的努力能够得到部分的成功,也可以显著的改善一个系统的结构。
 
 

相关文章推荐

类之OCP(Open Closed Principle):开闭原则

//z 2012-4-17 15:31:13 PM IS2120@CSDN 1. OCP 是什么? OCP : OPEN CLOSED PRINCIPLE 对扩展开放,对修改关闭 Softwa...
  • is2120
  • is2120
  • 2012年04月17日 15:56
  • 468

软件设计原则(一)开闭原则(Open-Closed Principle, OCP)

在学习设计模式之前,应该先对软件设计原则有一定的了解,设计模式在一定程度上是迎合软件设计原则而产生的,脱离了软件设计原则,设计模式是没有意义的。 开-闭原则(Open-Closed Principle...

设计模式六大原则(6):开闭原则OCP(The Open/Closed Principle )

转载于:http://blog.csdn.net/zhengzhb/article/details/7296944 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。...
  • holon23
  • holon23
  • 2014年02月24日 21:34
  • 492

"围观"设计模式(6)--开闭原则(Open/Closed Principle)

在面向对象编程领域中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中...

“开-闭”原则 (Open-Closed principle, OCP)

一个软件实体应当对扩展开放,对修改关闭。Software entities should be open for extension,but closed for modification.在设计一个...
  • eagullx
  • eagullx
  • 2011年06月30日 20:12
  • 199

【六大设计原则】6. 开闭原则 -Open Closed Principle

Open Closed Principle: Software entities like classes, modules and functions should be open for ext...

设计模式六大原则——开闭原则(OCP,Open Close Principle)

简介开闭原则(OCP)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。1988年,勃兰特·梅耶(Bertrand Meyer)在他...

开闭原则OCP(Open-Close Principle)被称作是OOD的基石,是OOD最重要的原则之一。---- 设计模式之禅读书笔记

开闭原则OCP(Open-Close Principle)被称作是OOD的基石,是OOD最重要的原则之一。 这个原则由大师Bertrand Meyer(贝特朗。梅耶)在1988年提出(汗,那个时候恐...

开放-封闭原则(The Open-Closed Principle,OCP)

自己设计的软件系统“易于维护”、“扩展性好”、“可重用”、“具有灵活性”,这是每位程序员所追求的目标。“开闭原则”为我们指明了方向,即我们所设计的软件尽量满足“开闭原则–对扩展开放,对修改关闭”,这样...

OO设计原则 — The Open-Closed Principle:OO设计的(OCP) 开放/封闭原则

对于一个软件的实体(类,模块,函数等)应该是可以扩展的,但是不可被修改。 一、概要 开放/封闭原则(The Open-Closed Principle:OCP)是在面向对象设计中,类和模块...
  • Eric_Jo
  • Eric_Jo
  • 2011年09月18日 22:15
  • 1373
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开闭原则(Open-Closed Principle,或者OCP)
举报原因:
原因补充:

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