开闭原则

开闭原则的定义:
SoftWare entities like classes,modules and functions should be open for extension but closed for modifications.(软件实体中 类、模块、函数应该对扩展开放对修改关闭)

需求上的变化可以归纳为以下三种类型:
逻辑变化:
只变化处理逻辑,处理的相关算法
子模块变化:
一个模块变化,会对其他的模块产生影响,这种变化也一定会引起相关高层模块的变化
可见视图变化:
使用界面的一些变化,如数据展示列 要增加一列。类似之前项目中的行为打分展示页

什么是开闭原则:
开闭原则表述 应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。
软件实体包含:项目(产品中按照一定的逻辑规则划分的模块)、抽象和类、方法

为什么要使用开闭原则:
他们说存在即合理,他们说开闭原则是其他几个原则的精神领袖
当然对于进行的单元测试会产生一些影响,如果不遵循开闭原则进行直接的修改,相应的单元测试类也要做相关修改。
遵循开闭原则可以提高复用性
开闭原则可以提高可维护性

怎么使用开闭原则:
首先它是一个特别虚的原则,要用到实际中去需要遵循:
1、抽象约束
① 通过接口或抽象类约束扩展,对扩展的边界进行相关的界定
② 参数类型、引用对象尽量使用接口或抽象类而不是实现类
③ 抽象层尽量保持稳定,一但确定不允许修改
实现对扩展开放的前提条件就是抽象约束
2、配置文件控制模块行为
3、制定详细项目流程,遵守契约
4、封装变化
①将相同的变化封装到一个接口或抽象类中
②将不同的变化封装到不同的接口或抽象类中,不应该有两个不同的变化出现在同一个接口或者抽象类中(找出可以预见的变化)

最佳实践:
1、开闭原则也是一个原则(不要痴迷)
2、项目开发规范很重要,在多人协作时体现
3、预见变化

你可能感兴趣的:(开闭原则)