开闭原则

开闭原则是对变化开,对变化闭。乍一听很矛盾……

这是我的系统分析课的老师说的。

不过我想这种“矛盾”完全是老师自己搞出来的,有点故弄玄虚的意味。

不是嘛?让我们来看看英文中对开闭原则的说法:

Classes, methods or functions should be Open for extension and Closed for modification.
类,方法或功能应该对拓展开放,而对修改关闭。

用中文思路应该这样翻译:

在不修改既有设计(代码)的前提下,允许对系统(功能)进行拓展。

这里的开放是允许的意思,关闭是不允许的意思。

而拓展与修改显然是两个不一样的意思,虽然都体现了所谓的“变化”,但老师那样 confusing 的说法,我觉得不合适。