当前位置:首页 > 开发 > 编程语言 > Java > 正文

Java的开闭原则(OCP)

发表于: 2011-11-02   作者:bookjovi   来源:转载   浏览次数:
摘要: 转自 http://yesmeshtu2008-163-com.iteye.com/blog/567125 开闭原则(Open-Closed Principle,OCP) 1、“开-闭”原则的定义及优点 1)定义:一个软件实体应当对扩展开放,对修改关闭( Software entities should be open for extension,but closed for

转自 http://yesmeshtu2008-163-com.iteye.com/blog/567125

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

1、“开-闭”原则的定义及优点

1)定义:一个软件实体应当对扩展开放,对修改关闭( Software entities should be open for extension,but closed for modification.)。即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。

2)满足“开-闭”原则的系统的优点

      a)通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活性。

      b)已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性。

      c)这样的系统同时满足了可复用性与可维护性。

2、如何实现“开-闭”原则

      在面向对象设计中,不允许更改的是系统的抽象层,而允许扩展的是系统的实现层。换言之,定义一个一劳永逸的抽象设计层,允许尽可能多的行为在实现层被实现。

      解决问题关键在于抽象化,抽象化是面向对象设计的第一个核心本质。

      对一个事物抽象化,实质上是在概括归纳总结它的本质。抽象让我们抓住最最重要的东西,从更高一层去思考。这降低了思考的复杂度,我们不用同时考虑那么多的东西。换言之,我们封装了事物的本质,看不到任何细节。

      在面向对象编程中,通过抽象类及接口,规定了具体类的特征作为抽象层,相对稳定,不需更改,从而满足“对修改关闭”;而从抽象类导出的具体类可以改变系统的行为,从而满足“对扩展开放”。

对实体进行扩展时,不必改动软件的源代码或者二进制代码。关键在于抽象。

3、对可变性的封装原则

“开-闭”原则也就是“对可变性的封装原则”(Principle of Encapsulation of Variation ,EVP)。即找到一个系统的可变因素,将之封装起来。换言之,在你的设计中什么可能会发生变化,应使之成为抽象层而封装,而不是什么会导致设计改变才封装。

      “对可变性的封装原则”意味着:

       a)一种可变性不应当散落在代码的许多角落,而应当被封装到一个对象里面。同一可变性的不同表象意味着同一个继承等级结构中的具体子类。因此,此处可以期待继承关系的出现。继承是封装变化的方法,而不仅仅是从一般的对象生成特殊的对象。

       b)一种可变性不应当与另一种可变性混合在一起。作者认为类图的继承结构如果超过两层,很可能意味着两种不同的可变性混合在了一起。

       使用“可变性封装原则”来进行设计可以使系统遵守“开-闭”原则。即使无法百分之百的做到“开-闭”原则,但朝这个方向努力,可以显著改善一个系统的结构

 

Java的开闭原则(OCP)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
OCP 开闭原则:“软件实体(类、模块、方法等)应该是可以扩展的,但是不可修改。” 开闭原则可以说
1 什么是开闭原则 开-闭原则(Open_Closed Principle):一个软件实体应当对扩展开放,对修改关闭。
开闭原则很简单,一句话:“Closed for Modification; Open for Extension”——“对变更关闭;对扩
开闭原则 编辑 本词条缺少 概述、 信息栏、 名片图,补充相关内容使词条更完整,还能快速升级,赶紧
“开一闭”原则讲的是:一个软件实体应当对扩展开放,对修改关闭。这一原则最早由Bertrand Meyer [ME
一、概念 软件实体(类、模块、函数等)应该可以扩展,但是不可以修改,即对于扩展是开放的,对于更
认识开闭原则 开闭原则是面向对象设计中最重要的原则之一,它也是设计模式的核心原则,其他一切原则
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来:在软件的生命周期内,
开闭原则 1、定义 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 2、问题由来 在软件
特点:对于扩展是开发的,对于修改是封闭的。 打个比方:比如弹性工作,每天必须保证8个小时的工作
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号