搬砖方法论:Open Closed Principle(开闭原则、OCP原则)

开放和关闭到底是什么

我们可以看一下对于开闭原则的定义:
软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。
或者更简洁:对扩展开放,对修改关闭。

其实我们可以把扩展和修改进行细分。

扩展:增加原来没有的功能。
修改:对已经含有的功能做规则上的更改。

这里面的开闭是以功能为单位,比较成功的应用就是插件,插件的增加和删除,并不会干扰系统中的其他插件,插件间也相互独立。

如何确保关闭

要确保关闭需要做到以下两点

  • 抽象化:确定其核心功能

  • 轻量化:减少无关依赖项,做到功能最简。

功能交叉、覆盖面广是很难保证关闭的。

如何做到开放

抽象(abstract)和接口(interface)是必不可少的,重写(override)可在原有功能的概念上更改不同的实现方式,接口不仅含有override的好处,而且对功能的划分更加友好,基于扩展函数的使用,可对不同功能进行相应的扩展。
扩展的核心是依赖数量和方向上的控制。

和依赖倒置有什么区别

开闭原则的关注点是对功能变更的应对手段。依赖反转的关注点是对分层策略、模块解耦的控制。


更多文章详见主页:www.aihailan.com

发表评论