`

设计原则----开放封闭原则

 
阅读更多

设计原则----开放封闭原则(OCP)

开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。

 

该定义包含两个特征:
  1.对于扩展是开放的
  2.对于更改是封闭的

我们在做任何系统的时候,都不要指望系统一开始时需求确定,就再也不会变化,这是不现实也不科学的想法,而既然需求是一定会变化的,那么如何在面对需求的变化,设计的软件可以相对容易修改,不至于说,新需求以来,就要把整个程序推到重来。怎样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一版本以后不断地推出新的版本呢?开发-封闭原则给了我们答案。

绝对的对修改关闭是不可能的。无论模块是多么地“封闭”,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭作出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。

需求的变化有时候可能很难预先猜测,但我们却可以在发生小变化时,就及早去想法应对发生更大变化的可能。也就是说,等到变化发生时立即采取行动。

在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现在的代码。这就是‘开放-封闭原则’的精神所在。
分享到:
评论

相关推荐

    6开放封闭原则-课程内容.rar

    在“6开放封闭原则-课程内容.pdf”中,可能涵盖了以下知识点: 1. **原则的解释与实例**:详细阐述开放封闭原则的概念,并通过实际的代码示例来解释如何在实践中遵循这一原则。 2. **面向接口编程**:开放封闭原则...

    面向对象的设计原则--ooprinciples

    开放关闭原则(Open/Closed Principle, OCP)作为面向对象设计原则的核心之一,强调了如何通过设计使得软件系统既具有开放性又具备封闭性,从而提高系统的稳定性和可扩展性。 #### 二、开放关闭原则概述 **开放关闭...

    6开放封闭原则-MOOC课程内容.pdf

    开闭原则(Open-Closed Principle,OCP)是面向对象设计原则中的一个核心原则,由Bertrand Meyer提出。它强调软件实体(类、模块、函数等)应当对扩展开放,但对修改封闭。这意味着软件系统的设计应当允许在不修改...

    设计模式之开放封闭原则

    本文将深入探讨“开放封闭原则”这一核心设计原则,并结合C#语言环境进行解析。 开放封闭原则(Open-Closed Principle,OCP)由Bertrand Meyer在1988年提出,是面向对象设计的五大原则(SOLID)之一。该原则规定,...

    面向对象设计原则(SRP,OCP,LSP,DIP,ISP)

    面向对象 设计原则 单一职责原则--SRP 开放封闭原则--OCP Liskov替换原则--LSP 依赖倒置原则--DIP 接口隔离原则--ISP

    第二十六讲:基础一开放封闭原则

    在软件设计领域,开放封闭原则(Open-Closed Principle,OCP)是面向对象设计的五大原则之一,由Bertrand Meyer在1988年提出。这一原则旨在指导我们如何构建可扩展且易于维护的软件系统。简单来说,OCP 告诉我们,...

    23种 设计模式---面向对象的基本原则

    2. 开放封闭原则(Open-Closed Principle, OCP):软件实体(如类、模块、函数等)应当对扩展开放,对修改关闭。即在不修改原有代码的基础上,通过增加新的代码来扩展功能。 3. 里氏替换原则(Liskov Substitution ...

    PHP面向对象五大原则之开放-封闭原则(OCP)详解

    4. 要注意到开放-封闭原则是设计原则之一,它并不是一个硬性的规则。在设计时,我们应该结合具体的应用场景和其他的设计原则(比如单一职责原则、里氏替换原则等)来综合考虑。 在使用开放-封闭原则时,需要在系统...

    开放封闭原则的具体实现-可拓展内封闭的技能管理器

    这是一个可拓展的对内封闭的技能管理器模板,可以直接运行和更改功能 让技能实现依赖于固定的抽象,通过覆写其方法...开放封闭原则正是对这一目标的最直接体现,而其他的设计原则,很多时候也是为实现这一目标服务的。

    浅谈Java设计模式之开放封闭原则

    Java的开放封闭原则是软件设计领域的一个核心原则,它的提出旨在指导开发者构建更稳定、可扩展的系统。这个原则由两部分组成:开放扩展和封闭修改。简单来说,就是希望软件模块对于增加新功能是开放的,而对于修改...

    设计模式(四)之开放封闭原则.zip

    开放封闭原则就相对的解决了这个问题,它强调的是你设计的模块应该从不改变(绝对不改变是不可能的,只能相对少改动)。当需求变化时,你可以通过添加新的代码来扩展这个模块的行为,而不去更改那些已经存在的可以...

    软件开发设计原则

    这些原则包括单一职责原则、开放封闭原则、里氏替换原则、最少知识原则、接口隔离原则和依赖倒置原则等。 1. 单一职责原则(Single Responsibility Principle - SRP) 单一职责原则是指一个类应该只有一个原因去...

    软件设计6原则

    为了达到这样的设计目标,业界总结了一系列设计原则,这些原则被统称为“软件设计6原则”,它们分别是:单一责任原则(Single Responsibility Principle,简称SRP)、开放封闭原则(Open/Closed Principle,简称OCP...

    面向对象设计原则.pdf

    **开放封闭原则 (OCP, Open/Closed Principle)** - **定义**: 软件实体应该是对扩展开放的,但对修改封闭。 - **目的**: 使系统能够适应需求的变化,同时无需修改现有代码。 - **实践建议**: - 使用接口或抽象类...

    C++设计模式课件2_面向对象设计原则.pdf

    2. **开放封闭原则(Open/Closed Principle, OCP)** - **原则阐述**:软件实体应该是可扩展的,但不应该可修改。 - **实践意义**:确保现有代码的稳定性,同时允许新的功能或行为的加入,这有助于保持软件系统的...

    java面向对象设计的六大原则

    以下将详细介绍面向对象设计的六大原则:单一职责原则(Single Responsibility Principle, SRP)、开放封闭原则(Open-Closed Principle, OCP)、里氏替换原则(Liskov Substitution Principle, LSP)、依赖倒置原则...

    学生管理系统+UML课程设计--学生选课系统

    为了保证系统的可维护性和扩展性,我们需要遵循软件设计原则,比如单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)和接口隔离原则(ISP)。这些原则有助于我们构建松耦合、高...

    设计原则与模式

    - **开放封闭原则(OCP)**:软件实体(类、模块、函数等)应当对扩展开放,对修改关闭。 - **里氏替换原则(LSP)**:子类型必须能够替换它们的基类型,而不影响程序的正确性。 - **接口隔离原则(ISP)**:...

Global site tag (gtag.js) - Google Analytics