4.2牢记单一责任和开闭原则|天天消息

来源:哔哩哔哩

2023-06-25 11:29:30

再复杂的设计,当你将其彻底拆解和分析之后,你会发现其核心实质不过是单一责任原则(SRP)和开闭原则(OCP)的具体应用和实现。

—— lorne

SRP&OCP的地位

我一直认为单一责任和开闭原则是软件开发设计中的最顶级原则


(资料图片)

单一责任是模块与类设计的第一原则,开闭原则是抽象与拓展的第一原则。

在SOLID中 也是最靠前的两个原则

S 指的是单一责任,O指的就是开闭原则。

L是里氏替换原则,I是接口隔离原则,D是依赖导致原则。

而这三个原则都是对具体操作层面的约束原则。

SRP原则

单一责任,要求我们对类、函数、包、模块都需要遵循单一责任的原则,其目的是为了可维护性与复用行。

可维护性是指,通过将相同的代码维护在一块,可以让功能的封装性更强,同样对于修改维护的时候,也只需要修改一处地方即可。

复用行是指,通过对相同指责代码的封装,从而可以在需要使用这个功能的时候,容易引入进来,从而提升了代码的重复利用率。

OCP原则

开闭原则,要求我们对新增开放,对修改关闭。其目的是为了可维护性与拓展性。

可维护性是指,如果对功能的调整都需要通过修改已有的代码来实现的话,那么将会带来很多的隐患,因为只要是改动过的代码都有可能会存在的问题,因此我们已经尽量的避免修改已有的逻辑,而是通过新增来实现,因为新增代码的话,其影响面只是新代码的影响,而不会影响已有的逻辑。

拓展性是指,想要达成通过新增来实现对已有功能的调整,则需要我们采用一些设计技巧来实现的,例如多态、继承、事件驱动、接口隔离等方式,当你采用这样的方式处理程序以后,自然会带来更强的拓展性与适配能力。

总结

SRP原则,我用两个例子场景来介绍

文件归档能力,如果你需要做大量的文字处理的功能,你想要在写新的文档的时候,使用你之前的文档内容,那么你就需要做好两件事情,1是文件的分类,2是文件的命名与段落的标题总结。如果你能做好这两项能力,那么你在复用你之前的劳动成果的时候,就变得的非常的容易了。

打扫卫生,我认为打扫卫生这个事情,想要做好这个工作,需要的也是两方面的能力,分别是归纳和整齐。归纳是指,我们要把物品做好分类,整齐是指,我们要归纳好的物品排放整齐。满足这两点就说明,就已经是非常成功的打扫工作了。

OCP原则,更多的是考察程序员的抽象能力,只有在运用好抽象能力以后,你才能做好OCP的工作。像是多态、事件驱动、接口隔离更多的是设计者的面相对象的底层设计能力,尤其是多态,OCP想要做好必然会运用多态的技术。

前面说SRP和OCP是设计原则的两大顶级原则,一个是教大家如何归纳分类、一个是教大家如何抽象多态,其实这两大能力也是软件设计中的最重要的能力。

因此想要成为合格的架构师,那么对于这两个设计原则必须要做到牢记在心、熟练应用。无论是多复杂的架构设计,当你把他拆解分析完以后,最终也无非是这两个原则的表现。

关键词:

4.2牢记单一责任和开闭原则|天天消息

再复杂的设计,当你将其彻底拆解和分析之后,你会发现其核心实质不过是[详细]
2023-06-25

网络用语月抛是什么意思

前面给大家介绍了关于网络用语日日抛这个词,而也有网友关注到还有一个[详细]
2023-06-25

20万人在她直播间游云南,妹子卖爆山货,超一半顾客复购 热点评

6·18淘宝直播带火产业带直播。文 易琬玉编辑 郑亚文今年6·18成了不少[详细]
2023-06-25

东风汽车股份等多家车企变更准入信息 全球最新

近日,工信部发布《道路机动车辆生产企业及产品公告》(第372批)拟发[详细]
2023-06-25

今日看点:德国抗议者要求美军撤出德国

Yourbrowserisnotsupported 当地时间24日,千余名德国民众在德国西南部[详细]
2023-06-25

每日简讯:高速通行量较2019年同期增长逾两成 端午小长假武汉周边探亲流火爆

高速通行量较2019年同期增长逾两成端午小长假武汉周边探亲流火爆---湖[详细]
2023-06-25

全球快播:黄龙法院司法之力守护群众美好生活

“谢谢黄龙法院,这么快就帮我解决了问题,压在心里多年的石头终于落地[详细]
2023-06-25

甘肃兰州一企业发生闪爆事故|快消息

6月24日晚,甘肃省兰州市西固区一家企业发生闪爆事故,从网友拍摄的图[详细]
2023-06-25

曾奉先(关于曾奉先介绍)|世界时讯

来为大家解答以上的问题。曾奉先,奉先介绍这个很多人还不知道,现在让[详细]
2023-06-25

尤长靖参加的综艺节目视频 尤长靖参加的综艺节目

今天来聊聊长靖参加的综艺节目视频,尤长靖参加的综艺节目的文章,现在[详细]
2023-06-25
版权所有: 非洲制冷网 All Rights Reserved
沪ICP备2022005074号-8
联系邮箱:58 55 97 3@qq.com