开放封闭原则的精髓是,对于某个已有的程序:
对程序的修改是封闭的;
对程序的扩展是开放的;
引用大话设计模式中的例子,如果事先实现了一个加法的功能,后来添加减法功能的时候,你要考虑如何去扩展你的代码,而不是去修改已有的代码;
对于这个例子而言,本来只有一个加法运算的类,按照开放封闭原则,要加入减法功能做法就是抽象一个运算类,然后分别去实现加法和减法类;这样就能保证原有的加法运算的代码不被修改。
然而,并不是所有的代码碰见需求变更的时候,都只扩展而不修改,开发封闭原则的运用要掌握好时机,通常是在需求经常变更的环节使用这个原则;否则滥用这个原则反而会导致代码更加复杂。
不是有那句话吗?拒绝不成熟的抽象与抽象本身一样重要!