【Java高级工程师蜕变之路】072 架构设计基本原则之开闭原则(OCP)

本文介绍了一个良好的可扩展性的架构需要遵守的原则。

架构设计基本原则

2022/04/16 校对完成

文章更新历史

2022/04/16 初稿。

开闭原则(OCP)

OCP , Open Close Principle 开闭原则

开闭原则的定义

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

软件实体包含几个部分

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

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

开闭原则的作用

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

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

开闭原则的实现方法

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

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

实例:

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

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

    image-20220414195036258

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

    • 第一种

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

    • 第二种

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

    • 第三种

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

      image-20220414224432172

posted @ 2022-05-04 22:52  灯塔下的守望者  阅读(2)  评论(0编辑  收藏  举报