【Java高级工程师蜕变之路】072 架构设计基本原则之开闭原则(OCP)
本文介绍了一个良好的可扩展性的架构需要遵守的原则。
架构设计基本原则
2022/04/16 校对完成
文章更新历史
2022/04/16 初稿。
开闭原则(OCP)
OCP
,Open Close Principle
开闭原则
开闭原则的定义
开闭原则:软件实体应该对扩展开放,对修改关闭
软件实体包含几个部分
- 项目中划分出来的模块
- 类与接口
- 方法
开闭原则的含义:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新需求。
开闭原则的作用
使软件实体拥有一定的适应性和灵活性,同时兼备稳定性和延续性。作用如下:
- 对软件测试的影响
- 提高代码的可复用性
- 提高代码的可维护性
开闭原则的实现方法
可通过“抽象约束、封装变化”来实现开闭原则。
通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,将可变因素封装在具体实现中。
实例:
-
学校有很多课程,课程有一门是Java,需要打印课程ID、名称以及售价。
新建一个接口类
ICourse
和 Java课程类JavaCourse
,JavaCourse
实现ICourse
的接口。 -
赶上促销活动,Java课程打六折,有几种处理方案
-
第一种
ICourse
接口新增方法getDiscountPrice()
,但是,这样的话,所有实现ICourse
接口的方法都要增加一个方法。 -
第二种
需修改
JavaCourse
类, 但是,这样会破坏JavaCourse
原本稳定的代码,不合理。 -
第三种
新建一个
JavaDiscountCourse
类,继承JavaCourse
,并增加一个打折方法。
-