[设计模式之禅读书笔记]001_设计模式六大原则(一):单一职责原则(Single Responsibility Principle)
序言
《设计模式之禅》,与这本书结缘是在大三下学期,到图书馆借书的时候,看到一本很新的书,书名带个“禅”字,而当时又比较迷恋乔布斯。于是,不管它写的什么乱七八糟的内容就果断借着,拿回宿舍看。接着,放暑假期间,到金蝶实习,就把这本书带着看,怀着装逼的心态。整个实习两个月期间,这本书基本上没翻过,相反的,却把当时火起来的《山楂树之恋》给看了一遍。实习完回校,果断又把书还回去了。
今天,我已经快工作一年半了,之前每每想拿起这本书读的时候,总觉得没到火候。现在我觉得似乎到火候了,自己对设计模式有强烈的渴望,有强烈的需求。今天,拿起这本书,一定要老老实实的读完它。
单一职责原则
1. 作者在讲解这一原则的时候,提到了针对两种设计的单一职责:接口设计和类设计。作者给我们的建议是:接口设计一定要做到单一职责,而类设计尽量只有一个原因引起变化。
2. 作者总结单一职责原则给我们带来的好处是(这里我觉得作者的用语也挺无聊的,估计自己瞎总结的,参考参考):
a. 类的复杂性降低,实现什么职责都有清晰明确的定义;
b. 可读性提高;
c. 可维护性提高;
d. 变更引起的连锁反应风险降低(这一点挺实在,职责单一了,那引起的变化就少了,于是连锁反应风险就降低了);
3. 作者认为单一职责原则的难点:职责的划分。
这一点,我个人挺赞同的,所谓的职责是很难划分的。
我做个比喻,关于软件作业的角色,我们有开发工程师和测试工程师这么一说,但是,请观察一下周围的同事和你自己。你是开发工程师的时候,你干的也有测试工程师的工作。你是测试工程师的时候,你也干着开发工程师的工作(这个可能性小一点)。
所以,在设计我们的软件作业系统时,关于开发工程师和测试工程师的设计我们可以这样设计:规章里的开发工程师和测试工程师是严格独立的单一职责的接口;现实里的开发工程师和测试工程师则是具有混合职责的类。当然,混合职责的类最好做到只有一个因子引起变化。
-以上-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?