开闭原则
简介
开闭原则(OCP, Open-Closed Prineiple) ,在面向对象编程领域中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。
意义
- 软件实体应该对扩展开放,对修改关闭,其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。
- 软件实体包括以下几个部分:
1.项目或软件产品中按照一定的逻辑规则划分的模块。
2.抽象和类。
3.方法。
优点
- 代码可读性高,可维护性强。
- 缩小逻辑粒度,提高可复用性。
- 对于维护人员至扩展一个类,不用修改类,提高可维护性。
开放封闭原则简单的例子
设计一个加法程序,这个很容易写出来了。
此时如果再添加一个减法的功能,那么就会修改原来的加法类,这就会违反了开放封闭原则。开放封闭原则的精神是面对需求,对程序的修改时通过增加代码进行的,而不是更改现有的代码。
我们可以通过增加一个抽象的运算类来解决这个问题。
这样以后再增加其他运算,只需要添加类就可以,符合开闭原则。