当前位置: 首页 > news >正文

【设计原则篇】聊聊开闭原则

开闭原则 其实就是对修改关闭,对拓展开放。

是什么
OCP(Open/Closed Principle)- 开闭原则。关于开发封闭原则,其核心的思想是:模块是可扩展的,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。

如何设计开发原则
在实际的业务开发中,我们会经常遇到各种不同的业务需求等,比如在互联网金融中针对不同的用户进行拒贷、不同的策略等,我们需要进行权衡业务进行去进行设计拓展点,大多数的时候基于拓展点都是针对接口、抽象、多态以及设计模式(策略、模板、责任链、状态等)进行实现的。比如说需要使用消息队列进行发送数据,那么我们可以抽象出一个更高纬度消息队列接口,如果当前使用的是rabblitmq,那么如果切换到kafka中就可以直接实现一套kafka的就可以。
在这里插入图片描述

如何在实际开发中应用开闭原则
在实际的工作中使用,业务开发和基础架构开发,两种模式来说的话,其实需要考虑的点不同,业务开发更多的是根据业务短期内需求的变更进行实现需求,而基础架构的话,是需要找到不变的点,然后将其记性抽取出更加通用的基础类库。
但是在实际的开发中,我们需要权衡利弊,也就是为了更好的拓展点,舍弃过度设计,以及在可读性和可拓展上进行取舍。有的地方可以进行为了可拓展性,那么放弃可读性。有的地方为了可读需要放弃拓展性。
总之没有一个放之四海而皆准的方案,需要我们结合具体的场景进行考虑。

总结
任何编码技巧也不如时刻具备拓展意识、抽象意识、封装意识。设计模式、设计原则等都是为了设计出可拓展的代码。

http://www.lryc.cn/news/228892.html

相关文章:

  • LVS面试题
  • uniapp发行web页面在老版本浏览器打开一片空白
  • 数据结构—二叉树的模拟实现(c语言)
  • COCO数据集下载
  • 基于安卓android微信小程序的校园互助平台
  • Spring整合Junit(4、5)
  • Linux 程序开发流程 / 基本开发工具 / Vim / GCC工具链 / Make 工具 / Makefile 模板
  • 2023.11.13【读书笔记】丨生物信息学与功能基因组学(第六章 多重序列比对 下)
  • 【vue】虚拟dom的原理是什么?手写实现虚拟dom !
  • CentOS 7 双网卡绑定热备 —— 筑梦之路
  • Qt绘制简单图表
  • CCLink转Modbus TCP网关_MODBUS网口设置
  • Vux购物车案例
  • 浅析网络协议-HTTP协议
  • 启动Docker服务后显示Docker Engine stopped
  • Centos7 升级到 Centos8 教程以及关于dnf包管理工具的若干问题解决方案
  • 计算机网络技术(一)
  • redis监听key失效
  • echart宽度100px原因(解决el-tabs里的echarts图表宽度不自适应,只有100px问题)
  • 【使用教程】在Ubuntu下PMM60系列一体化伺服电机通过PDO跑循环同步位置模式详解
  • 【机器学习】七、降维与度量学习
  • Yolov5 + 界面PyQt5 +.exe文件部署运行
  • 工作记录--(用HTTPS,为啥能被查出浏览记录?如何解决?)---每天学习多一点
  • MySQL-基础篇
  • 1.Osmdroid概述
  • Excel表列名称
  • ORDER BY limit 10比ORDER BY limit 100更慢
  • aws亚马逊云:置以使用 Amazon EC2!!!
  • torch.cat()、 torch.add()、torch.subtract()、torch.subtract()和torch.div()函数详解和示例
  • jetsonTX2 nx配置tensorRT加速yolov5推理