面向对象设计原则之开放闭合原则
1,解决的痛点
一个软件总是在随着需求的变化而跟着变化的,没有任何一个软件能够从设计出来就一直保持不变,那就肯定会涉及到增加新功能,如果我们在原基础代码上进行更改,那么必然会对原有功能造成一定的影响。开放闭合原则提出来就是为了解决该问题。也可以理解为,提出该原则是为了降低耦合度。
2,官方讲解
开放封闭原则(OCP,Open Closed Principle)是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的,例如以Liskov替换原则实现最佳的、正确的继承层次,就能保证不会违反开放封闭原则。
关于开放封闭原则,其核心的思想是:
软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。
对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
因此,开放封闭原则主要体现在两个方面:
对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。
3,个人理解
开放闭合,即就是抽象出一个接口,该接口有将来开发的所有的功能都会有的一个方法,每一个功能必然会实现这个方法。那么每一个功能必然都会继承该接口。