开闭原则(Open Close Principle)
一、对象(类、模块、方法等)应该对于扩展是开放的,对修改是关闭的
二、问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。
三、为什么使用开闭原则
1、只要是面向对象的编程,在开发过程中都会强调开闭原则
2、是最基础的设计原则,其他五个设计原则都是开闭原则的具体形态
3、可以提高代码的复用性
4、可以提高代码的可维护性
四、如何使用开闭原则
1、抽象约束
抽象对一组事物的通用描述,没有具体的实现,也就表示它可以有非常多的可能性,可以跟随需求的变化而变化。因此,通过接口或抽象类可以约束一组可能变化的行为,并且能够实现对扩展开放。
2、元数据控件模块行为
3、制定项目章程
4、封装变化
将相同的变化封装到一个接口或抽象类中,将不同的变化封装到不同的接口或抽象类中,不应该有两个不同变化出现在同一个接口或抽象类中。
例:有一门课程,最初实现是:

当需要新增一个活动价格时,此时大多数人做法是接口新增加一个活动价格,但是这样对原有代码破坏,当有很多课程时,就需要对每个课程都进行实现,可以修改为:

此时就做到了,对扩展是开放的,对修改是关闭的

浙公网安备 33010602011771号