开放——封闭原则(OCP)
一、基本概念
OCP: 软件实体(类、模块、函数等)应该可以扩展,但是不可修改。
解释:即对于扩展是开放的,对于修改是封闭的。
二、实际技巧
实际上,无论模式多么的‘封闭’,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。
即:当变化发生时,我们就创建抽象来隔离以后发生同类的变化。(等到变化发生时立即采取行动)
面对需求,对程序的改动是通过增加代码来完成的,而不是改动现有的代码。(例如简单工厂模式思想)
三、优点
开放――封闭原则是面向对象的核心所在。这个原则所带来的优点就是可维护、可扩展、可复用、灵活型好。
开发人员应该对程序中呈现出频繁变化的那部分做出抽象,拒绝对任何部分都刻意抽象及不成熟的抽象。