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

软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的

开放封闭原则主要体现在两个方面:

  1、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。

  2、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何尝试的修改。

  实现开开放封闭原则的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。

  让类依赖于固定的抽象,所以修改就是封闭的;

  而通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过覆写其方法来改变固有行为,实现新的拓展方法,所以就是开放的。

  “需求总是变化”没有不变的软件,所以就需要用封闭开放原则来封闭变化满足需求,同时还能保持软件内部的封装体系稳定,不被需求的变化影响。

  

时间: 2024-08-25 16:51:36

开放封闭原则(Open Closed Principle,OCP)的相关文章

开放封闭原则(Open Closed Principle)

在面向对象的设计中有很多流行的思想,比如说 "所有的成员变量都应该设置为私有(Private)","要避免使用全局变量(Global Variables)","使用运行时类型识别(RTTI:Run Time Type Identification,例如 dynamic_cast)是危险的" 等等.那么,这些思想的源泉是什么?为什么它们要这样定义?这些思想总是正确的吗?本篇文章将介绍这些思想的基础:开放封闭原则(Open Closed Princi

开放封闭原则OCP

开放封闭原则(OCP,Open Closed Principle)是所有面向对象原则的核心.软件设计本身所追求的目标就是封装变化.降低耦合,而开放封闭原则正是对这一目标的最直接体现.其他的设计原则,很多时候是为实现这一目标服务的. 关于开放封闭原则,其核心的思想是: 软件实体应该是可扩展,而不可修改的.也就是说,对扩展是开放的,而对修改是封闭的. 因此,开放封闭原则主要体现在两个方面: 对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况. 对修改封闭,意味着类一旦设计完

开放封闭原则(OCP)

开放封闭原则 转:http://baike.baidu.com/view/2493421.htm转:http://dev.csdn.net/article/38/38826.shtm 开放封闭原则(OCP,Open Closed Principle)是所有面向对象原则的核心.软件设计本身所追求的目标就是封装变化.降低耦合,而开放封闭原则正是对这一目标的最直接体现.其他的设 计原则,很多时候是为实现这一目标服务的. 关于开发封闭原则,其核心的思想是: 软件实体应该是可扩展,而不可修改的.也就是说,

敏捷软件开发 – OCP 开放-封闭原则

软件实体(类.模块.函数等)应该是可以扩展的,但是不可修改的. 如果程序中的一处改动就会产生连锁反应,导致一系列相关模块的改动,那么设计就具有僵化性的臭味.OCP建议我们应该对系统进行重构,这样以后对系统再进行这样那样的改动时,就不会导致更多的修改.如果正确地应用OCP,那么以后再进行同样的改动时,就只需要添加新的代码,而不必改动已经正常运行的代码. OCP概述 遵循开放-封闭原则设计出的模块具有两个主要的特征.它们是: 对于扩展是开放的(open for extension).这意味着模块的行

敏捷软件开发——开放—封闭原则(OCP)

由来: 怎么样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一版本以后不断推出新的版本呢?bertrand meyer 在1988年提出的著名的开发-封闭原则(the open-closed princle)为我们提供了指引. 遵循开放-封闭原则设计出的模块具有两个主要特征: 1. "对于扩张是开放的"(open for extension) 这以为着模块的行为是可以扩展的.当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的行为.也就是说,我们可以改变

设计模式六大原则: 一国两制 -- 开放封闭原则

"一国两制"指的是在中华人民共和国内,国家的主体实行社会主义,香港.澳门和台湾实行资本主义. 中国共产党为解决祖国内地和台湾和平统一的问题以及在香港.澳门恢复行使中国主权的问题而提出的基本国策.即在中华人民共和国内,内地坚持社会主义制度作为整个国家的主体,同时允许台湾.香港.澳门保留资本主义制度. 现代化建设的设计师-邓小平先生一定学过设计模式,他的 开放封闭原则用地炉火纯青啊: - 首先中国大陆的社会主义方针是坚定不移的 - 这时香港.澳门这两个在富人家过惯了的孩子又不肯回来过社会主

开放封闭原则

What 开放封闭原则(Open-Closed Principle:OCP),对于扩展是开放的,对于修改是封闭的.软件设计的目标:封装变化.降低耦合,而OCP正是这目标最直接的提现之一. Why OCP优点就是不会对已有的代码造成影响,减小测试的范围,以及代码的稳定性. How 下面不符合OCP的设计,为什么这样说:如果银行业务需要增加其他的功能,比如转账业务,那么我们需要修改BankProcess类,违反了对于修改是封闭的 class BankProcess { //存款 public voi

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

"开-闭"原则 (Open-Closed principle, OCP) 一个软件实体应当对扩展开放,对修改关闭. Software entities should be open for extension, but closed for modification. 在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展. "可变性的封装原则"从工程的角度讲解了如何实现"开-闭"原则. "可变性的封装原则"意味着两

开放—封闭原则

案例:求职考研两不误.考研失败,工作没准备,这是不行的 开放——封闭原则:是说软件实体(类.模块.函数等等)应该可以扩展,但是不可修改. 两个特征:对应扩展是开放的,对于更改是封闭的. 怎么样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本?:开放——封闭原则 案例:公司职员迟到:不可改变的是业绩成效,可改变的是上班的时间 无论模块是多么封闭,都会存在一些无法对之封闭的变化.既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪块变化封闭做出选择.必