现在我来学习一下开闭原则,一个软件实体如类,模块和函数应该对扩展开放,对修改关闭,所谓开闭也是对扩展,修改
两个行为的原则,强调的是构架框架,实现扩展细节,有点是提高软件系统的可复用性和可维护性,那开闭原则是面向对象
最基础的设计原则,他知道我们如何建立稳定灵活的系统,例如我们版本更新,尽量不修改源代码,但是可以增加新功能,
那么在实际生活中还有一个体现,例如我们很多互联网公司,每天工作八小时,对于每天你工作八小时,修改是关闭的,
但是对于什么时候来,什么时候走,这个制度是开放的,那如果早点来呢,可以早点走,晚点来就晚点走,总之要满足工作8小时,
这也是实际工作中对开闭原则的一个体现,那实现开闭原则的核心思想,是面向抽象编程,打个比方,比如我们对于校验这样一个
业务逻辑,校验一般还分顺序,先校验什么,后校验什么,再校验什么,然后再校验什么,那如果我们代码模块之间,设计的好,
那么对于新增这样的一个规则,所谓的扩展,对于这样的功能,是开放的,而我们新增一个校验规则的话,尽量不要去修改原来的
校验代码,以免引入新的风险,那这里面强调一下,实现开闭原则的核心思想,就是面向抽象编程,就是面向具体的实现编程,
因为抽象相对来说是稳定的,让类去依赖于固定的抽象,所以对于修改来说就是封闭的,而通过面向对象的继承,及多态的机制,
那就可以实现抽象里的继承了,那通过重写,改变其固有方法,或者实现新的扩展方法,那变化发生时,我们可以创建抽象隔离以后,
不可能发生的同类变化,关键的核心在于,实现抽象化,我们怎么从业务场景当中抽象出来,并且从抽象具体化一个实例,那这几个
原则讲起来比较抽象,那不要紧,我们每个原则都有配套的业务场景