开闭原则(OCP:Open-Closed Principle)

简单来说,就是:对扩展开放,对修改关闭。

描述长一点,就是:在设计一个软件系统模块(类,方法)的时候,应该可以在不修改原有的模块(修改关闭)的基础上,能扩展其功能(扩展开放)。(百度知道上的回答,这句话我背下来了)

 

为什么要遵守开闭原则?

1.稳定性。2.扩展性。

稳定性:避免代码经常修改/避免代码修改,可以避免因修改引入bug。这有利于使原有系统保持稳定。

扩展性:随着需求的改变和增加,我们需要对原有系统功能进行扩展。(来提供新的功能和改变原有的功能)

以上,是比较抽象、准确的解释。

 

下面说一个应用场景:

极端情况下,代码一经提交,不可修改。(特性1必须满足。但是系统不可能永远一成不变,然后就有了第二个特性)

 

以上,就是我对开闭原则的理解。

闲聊一下生活中开闭原则理解:

一个人的思想就像一个黑箱,(形成的)观念就像黑箱中的代码——一旦形成,(几近)不可修改(对修改关闭)。所以,靠否定去说服一个人是很困难的。

如何改变一个人的思想呢?那就是给他输入新的思想(对扩展开放):先说服那个人接受新的观念(可以从最基础的认知层面开始,然后进行逻辑推理-严密的,得出结论),假如新的观念和他旧有的观念发生冲突,必然会重新审视自己的观念,使新的观念和旧有的(所有)观念进行融合,使其不矛盾、不冲突。假如,他认为新的观念是对的,那么必然会有一些旧有的观念被覆盖(重写)。

如果我们要改变一个人的思想,那么从他接受新观念的那一刻就实现了(当然,是不是接受了还要看实践)。如果要说服一个人,则要看那个人是怎样处理新观念和旧观念之间的冲突的。(果然,人比机器复杂,人脑比电脑复杂)

posted on 2019-09-19 11:59  天崖天涯  阅读(204)  评论(0编辑  收藏  举报