开放-封闭原则(OCP),是指软件实体(类、模块、函数等等)应该可以扩展,但是不可修改,即对于扩展是开放的,对于更改是封闭的。设计人员必须对于他设计的模块应该对哪种变化封闭做出选择,要先猜测最有可能发生的变化种类,然后构造抽象来隔离那些变化。 面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。