zoukankan      html  css  js  c++  java
  • 2、面向对象设计模式之开放封闭(开闭)原则

    开闭原则(Open-Closed Principle,OCP)定义如下:

      一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。

      软件实体,比如说类,模块,功能等,应当为扩展开放,但是对修改关闭,什么意思呢?就是说,在一个现有的工程完毕之后,以后所有新添加的功能应当在不修改原有代码的基础上进行,不应当在已有的代码上进行任何的代码修改或者逻辑添加操作。

      开闭原则由Bertrand Meyer于1988年提出,它是面向对象设计中最重要的设计原则之一。

      在开闭原则的定义中,软件实体可以指一个软件模块、一个由多个类组成的局部构成或一个独立的类。

      抽象化是开闭原则的关键。

      开闭原则还可以通过一个更加具体的“对可变性封装原则”来描述,对可变性封装原则(Principle Encapsulation of Variation,EVP)要求找到系统的可变因素并将其封装起来。

      我们希望在开发工作不久就知道可能发生的变化,查明可能发生的变化等待的时间越长,要创建正确的抽象就越困难。开闭原则是面向对象设计的核心所在。

      遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护,可扩展,可复用,灵活性好。开发人员应该对程序中呈现出频繁变化的那些部分做出抽象。

      然而,对于应用程序的每个部分都可以进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。尽量的抽象并非好事。

      

  • 相关阅读:
    mysql无法启动-You may have to recover from a backup
    mysql导出索引sql 导出索引创建语句
    Padavan路由器设置桥接多路由器同WIFI方法
    挖的坑还是要填的
    I'm Back
    40行加速头文件
    一些XJOI博客的密码
    p进制线性基填坑
    Dirichelet卷积的k次方根
    用pb_ds写一颗线段树
  • 原文地址:https://www.cnblogs.com/sy-liu/p/13029041.html
Copyright © 2011-2022 走看看