架构设计基本原则之开闭原则(OCP)

架构设计基本原则

开闭原则(OCP)

​**OCP**​ , Open Close Principle​ 开闭原则

开闭原则的定义

开闭原则:软件实体应该对扩展开放,对修改关闭

软件实体包含几个部分

  1. 项目中划分出来的模块
  2. 类与接口
  3. 方法

开闭原则的含义:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新需求。

开闭原则的作用

使软件实体拥有一定的适应性和灵活性,同时兼备稳定性和延续性。作用如下:

  1. 对软件测试的影响
  2. 提高代码的可复用性
  3. 提高代码的可维护性

开闭原则的实现方法

可通过“抽象约束、封装变化”来实现开闭原则。

通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,将可变因素封装在具体实现中。

实例:

  1. 学校有很多课程,课程有一门是 Java,需要打印课程 ID、名称以及售价。

    新建一个接口类 ICourse​ 和 Java 课程类 JavaCourse​ ,JavaCourse​ 实现 ICourse​ 的接口。

    image-20220414195036258

  2. 赶上促销活动,Java 课程打六折,有几种处理方案

    • 第一种

      ICourse​ 接口新增方法 getDiscountPrice()​ ,但是,这样的话,所有实现 ICourse​ 接口的方法都要增加一个方法。

    • 第二种

      需修改 JavaCourse​ 类, 但是,这样会破坏 JavaCourse​ 原本稳定的代码,不合理。

    • 第三种

      新建一个 JavaDiscountCourse​ 类,继承 JavaCourse​ ,并增加一个打折方法。

      image-20220414224432172

文章更新历史

2022/04/16 校对完成

2022/04/16 初稿

作者

Terwer

发布于

2022-04-17

更新于

2023-08-27

许可协议

评论