开闭原则

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,811评论 0 14
  • 开闭原则的定义 开闭原则是java世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活的系统。开闭原则定义如下...
    WILL_HUNTING阅读 13,407评论 5 8
  • 定义 Software entities like classes,modules and functions s...
    充满活力的早晨阅读 2,314评论 2 1
  • TCP/IP的分层 TCP,UDP是最著名的两种运输层协议,它们都使用网络层中的IP协议。虽然IP协议是不可靠的服...
    转身丶即天涯阅读 318评论 0 0
  • 最美不过昨日,每个早晨,都是个崭新的开始,昨天所经历的点点滴滴,虽终究会成为回忆,但也会印在心口,何时再回忆,也会...
    酒柠狐狸阅读 258评论 0 1