Skip to content

Latest commit

 

History

History
17 lines (11 loc) · 1.55 KB

OpenClosedPrinciple.md

File metadata and controls

17 lines (11 loc) · 1.55 KB

开闭原则

定义

软件实体(类,模块,方法,等等)应该对扩展开放,对修改关闭。即向系统中增加功能时应该只是添加新代码,而应该尽量少的修改原代码。

我们平常在开发的时候可能会经常碰到一个问题:今天写了一个类,里面封装了很多功能方法,但是过了没多久,业务功能改动了,我们又不得不修改 这个类里面已存在的代码,以满足当前业务需求。然而,修改已存在的代码会带来很大问题,倘若这个类在很多其他类中用到,而且耦合度较高,那么 即使我们对该类内部代码做很小的改动,可能都会导致与之相关(引用到该类)的部分的改动,如果我们不注意这个问题,可能就会一直陷入无止境修改 和烦躁当中,这就违背了开闭原则。

为了防止与之相关类(引用到该类)的改动,我们对于该类的修改应该是封闭的,我们可以提供对于该类功能的扩展途径。那么该如何扩展呢? 可以通过接口或者抽象类来实现,我们只需要暴露公共的方法(接口方法),然后由具体业务决定的类来实现这方法,并在里面处理具体的功能代码,至于对外具体怎么用, 用户无需关心。其实,开闭原则旨在指导用户,当我们业务功能需要变化时,应该尽量通过扩展的方式来实现,而不是通过修改已有代码来达到目的。只有这样, 我们才能避免代码的冗余和腐化,才能使系统更加的稳定和灵活。