开闭原则(OCP)

开闭原则(OCP)

1.开闭原则(OpenClosedPrinciple)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统。

2.对扩展开放,对修改关闭,

指的是可以在源代码的基础上进行扩展,比如继承,接口,抽象类等。在JAVA中,之所以用继承,是在可以直接调用类库的前提下,

对其功能进行扩展。不需要应用者去了解封装类的内部逻辑就可以做开发。

指的是原本封装好的代码不允许你去更改,比如JDK里面内置的Jar包。

遵循开闭原则设计出的模块具有两个主要特征:

(1)对于扩展是开放的(Openforextension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,

使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。

(2)对于修改是关闭的(Closedformodification)。对模块行为进行扩展时,不必改动模块的源代码或者二进制代码。模块的二进制

可执行版本,无论是可链接的库、DLL或者.EXE文件,都无需改动。

总结:

1.开说白了就是开放接口(一个小功能一个小功能的接口)、继承别的、抽象出公用的,为实现一个更大的功能(由多个小功能有接口实现)。

2.闭就是你做的接口功能要尽量单一,不与别的功能有耦合,这样就不会存在要修改的可能性了。

3.开就是方便进行功能扩展(就是以一个功能接口的方式进行编写,其他代码可以通过里面的接口进行新功能的扩展)

4.闭就是封装好一部分会经常变化的接口去应对变化,就是变化时是否需要更改大量代码(闭就是是减少这种更改)