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

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

是什么

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

如何设计开发原则

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

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

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

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

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

总结

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

相关推荐
养生技术人15 小时前
Oracle OCP认证考试题目详解082系列第49题
运维·数据库·sql·oracle·database·开闭原则·ocp
养生技术人2 天前
Oracle OCP认证考试题目详解082系列第57题
运维·数据库·sql·oracle·开闭原则
养生技术人2 天前
Oracle OCP认证考试题目详解082系列第53题
数据库·sql·oracle·database·开闭原则·ocp
养生技术人3 天前
Oracle OCP认证考试题目详解082系列第48题
运维·数据库·sql·oracle·database·开闭原则·ocp
养生技术人4 天前
Oracle OCP认证考试题目详解082系列第45题
运维·数据库·sql·oracle·开闭原则·ocp
养生技术人5 天前
Oracle OCP认证考试题目详解082系列第54题
数据库·sql·oracle·运维开发·database·开闭原则·ocp
我真的是大笨蛋6 天前
开闭原则详解(OCP)
java·设计模式·性能优化·开闭原则·设计规范
养生技术人6 天前
Oracle OCP认证考试题目详解082系列第50题
运维·数据库·sql·oracle·database·开闭原则
LoveXming12 天前
Chapter9—享元模式
java·c++·设计模式·享元模式·开闭原则
StevenGerrad13 天前
【读书笔记】架构整洁之道 P5-2 软件架构
设计模式·架构·软件工程·依赖倒置原则·开闭原则