01-05.开闭原则(Open Closed Principle)

1、基本介绍
(1)开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则,前面的各种原则最终都是为了实现这个开闭原则,也就是为了达到开闭的一个效果。
(2)那什么是开闭原则呢?我们来看这句话:一个软件实体如:类、模块和函数应该对扩展开放(站在对提供方来说),对修改关闭(站在对使用方来说)。用抽象来构建框架,用实现来扩展细节。(换句话说,当我们有一个功能扩展时,肯定要去修改或增加代码,但是增加一个类或增加一个功能以后,原先使用方的代码并不做修改。这个就是指开闭原则核心含义。
(3)当软件需要变化时,尽量通过扩展软件实体的行为(简单来理解就是方法)来实现变化,而不是通过修改已有的代码来实现变化。
(4)编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。

2、应用案例,如下步骤:
我们先来看一个代码,要求根据下面UML类图实现一个画图形的功能,如下:

 

分析:
可以看到有一个GraphicEditor(图形编辑程序,用来画图的)类,在右边提示说,他有一行代码,根据不同的类型实现不同的图形绘制。然后GraphicEditor会依赖Retangle(矩形)、Shape(形状、图形)和Circle(圆形)而Retangle(矩形)与Circle(圆形)继承于Shape(形状、图形),所以说Shape(形状、图形)应该设计是抽象类或接口(后面的案例会说明为什么设计成抽象类或接口)。

 (1)违反开闭原则案例

(2) 满足开闭原则案例

 (3)最后

如果你需要转载请说出原文出处,个人总结有不足之处请留言指出稍候修正,当然也欢迎大家一起探讨,欢迎你加入996.ICU……

原文地址:https://www.cnblogs.com/pickrecalled/p/14100298.html