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

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

是什么

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

如何设计开发原则

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

如何在实际开发中应用开闭原则

在实际的工作中使用,业务开发和基础架构开发,两种模式来说的话,其实需要考虑的点不同,业务开发更多的是根据业务短期内需求的变更进行实现需求,而基础架构的话,是需要找到不变的点,然后将其记性抽取出更加通用的基础类库。

但是在实际的开发中,我们需要权衡利弊,也就是为了更好的拓展点,舍弃过度设计,以及在可读性和可拓展上进行取舍。有的地方可以进行为了可拓展性,那么放弃可读性。有的地方为了可读需要放弃拓展性。

总之没有一个放之四海而皆准的方案,需要我们结合具体的场景进行考虑。

总结

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

相关推荐
小小不董14 天前
Oracle OCP认证考试考点详解082系列02
运维·服务器·数据库·oracle·开闭原则·1024程序员节
邮专薛之谦17 天前
Java设计模式六大原则
java·接口隔离原则·开闭原则·单一职责原则·六大原则
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧20 天前
软件设计模式------抽象工厂模式
设计模式·软件构建·个人开发·抽象工厂模式·uml·开闭原则
OceanBase数据库官方博客20 天前
OceanBase中扩容OCP节点step by step
oceanbase·分布式数据库·开闭原则·高可用·安装部署
努力找工作的OMArmy22 天前
软件开发----设计模式每日刷题(转载于牛客)
java·单例模式·设计模式·策略模式·访问者模式·模板方法模式·开闭原则
咕噜Yuki060924 天前
Oracle 的 OCP 与 MySQL 的 OCP 的区别
mysql·oracle·开闭原则
蜡笔小新..1 个月前
【设计模式】软件设计原则——开闭原则&里氏替换&单一职责
java·设计模式·开闭原则·单一职责原则
niech_cn1 个月前
超详细超实用!!!AI编程之cursor编写设计模式开闭原则实例(四)
设计模式·ai编程·开闭原则
丶白泽2 个月前
重修设计模式-设计原则
设计模式·接口隔离原则·依赖倒置原则·开闭原则
蔚一2 个月前
Java设计模式—面向对象设计原则(一) ----->开闭原则OCP(完整详解,附有代码+案例)
java·后端·设计模式·intellij-idea·开闭原则