23种设计模式☞开闭原则

来源:互联网 发布:非备案域名的流程 编辑:程序博客网 时间:2024/06/14 03:12

代码应该对扩展开放,对修改关闭 > 其含义就是已有代码基础上应该通过扩展来实现变化,而不是修改已有的代码来实现变化。

开闭原则对测试的影响

一个项目基本的流程应该是这样的:项目开发,重构,测试,投产,运维。 其中重构是对原有代码进行修改。投产之后发布到线上的代码都是经过千锤百炼的,可以说是没有任何错误的,稳定的代码。现在需求变化了,如果直接修改以前的代码,那测试人员就需要重新测试一遍。运维:就应该尽量减少对原有代码的修改,保持历史代码的纯洁性。

开闭原则可以提高复用性

所有的逻辑操作都是从原子逻辑组合而来的,而不是在一个类中实现一个独立业务

一个例子说明一下: 业务最开始的时候我们我们只需要知道书籍的名字,价格 ,作者,然后项目稳定上线了。

这里写图片描述

首先定义接口:IBook

这里写图片描述

实现类 NovelBook

这里写图片描述

调用类:

这里写图片描述

运行结果:

这里写图片描述

项目上线很稳定,但是过了一段时间,公司想添加打折业务,那么怎么办。 这个时候就不能修改接口了
,接口作为一种契约,如果接口改了所有实现它的类都的改动。这绝对不符合开闭原则,怎么办呢?

接口之间继承

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

新的功能是在原来的基础上进行开发的,几乎是没有更改历史代码,这就是开闭原则,功能也开发完了,测试也不用测试历史代码。其实23种设计模式也都是围绕开闭原则来进行设计的,可以说开闭原则是重中之重!