开放--封闭原则的中心思想:对程序的改动是通过增加新代码进行的,而不是更改现有的代码。
两个特征:对扩展是开放的,对更改是封闭的。
(无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。)
开放--封闭原则是面向对象设计(可维护、可扩展、可复用、灵活性好)的核心所在。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象。但也要拒绝不成熟的抽象。
摘自《大话设计模式》