开闭原则(Open Close Principle)

一、对象(类、模块、方法等)应该对于扩展是开放的,对修改是关闭的

二、问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。

三、为什么使用开闭原则

  1、只要是面向对象的编程,在开发过程中都会强调开闭原则

  2、是最基础的设计原则,其他五个设计原则都是开闭原则的具体形态

  3、可以提高代码的复用性

  4、可以提高代码的可维护性

四、如何使用开闭原则

1、抽象约束

    抽象对一组事物的通用描述,没有具体的实现,也就表示它可以有非常多的可能性,可以跟随需求的变化而变化。因此,通过接口或抽象类可以约束一组可能变化的行为,并且能够实现对扩展开放。 

  2、元数据控件模块行为    

  3、制定项目章程

  4、封装变化

    将相同的变化封装到一个接口或抽象类中,将不同的变化封装到不同的接口或抽象类中,不应该有两个不同变化出现在同一个接口或抽象类中。

例:有一门课程,最初实现是:

 

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

 

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

posted @ 2020-08-10 09:04  阿森sirius  阅读(607)  评论(0)    收藏  举报