设计模式原则(一)--- 单一职责原则

设计模式六大原则(一)——单一职责原则(SRP) 单一职责原则的核心思想是:一个类应该仅有一个引起它变化的原因。换句话说,一个类应该负责一组相对独立且内聚的职责。当这个类需要承担更多的职责时,就应该考虑将其拆分为多个类,每个类负责一个单一的职责。单一职责原则是面向对象设计中的一个重要原则,它要求一个类只负责一个职责。遵循这一原则,可以使得我们的代码更加清晰、易于维护和扩展。在实际开发中,我们应该时刻关注类的职责划分,确保它们符合单一职责原则。 阅读详情

单一职责原则

单一职责原则(Single Responsibility Principle),简称SRP。
其实在日常生活中,单一职责是随处可见的。

  • 数码相机的拍照功能
  • 音响放歌

在贴近一些我们程序猿生活的

  • 做显示处理的显卡
  • 做声音处理的声卡

从以上几点出发。可以看出,每个人或者物品分别处理着一个功能,并且在处理自己的领域时,都有着顶级的能力。

  • 我们知道,对于数码相机的拍照功能和音响放歌的功能,我们日常生活中的手机都具备着他们两个的能力。但在单独一个能力表现上都不如它们。
    手机并不能拍出数码相机的清晰度,也不能放出与音响的3D效果。所以对于数码相机音响来说,单一的功能才可以有更强的实力。
  • 同理,cpu 也有集成的显卡和声卡,但是为了用到看到更好的画质,我们增加了显卡。为了更好的音效增加了声卡。显卡声卡在仅有的功能上体现了更强大的实力。

这就是我们要了解的单一职责原则

为什么使用

在开发中我们也需要经常使用到单一职责原则,为了以后更好的维护以及扩展。
如果一个类承担的责任过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。

软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离

那么我们什么时候才需要使用呢?

  • 如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责
  • 就一个类而言,应该仅有一个引起它变化的原因。

应用场景

对于我们经常使用的工具类,如 Json 解析工具类,http 请求工具类,加密解密工具类。

我们都可以将它们看作单一职责。

我们不要误解 http 请求有 post 请求和 get 请求等。
它拥有多个职责或者说功能。这样的错误理解是把功能看的细节化。

我们必须站在对应的高度来看待某一个类的功能。不可高也不可低。

例如开发中的 DAO 层。
我们可以说增删改查的每个方法都是单一职责。
也可以说一个类处理所有的表的增删该查。这个类的单一职责就是处理数据库表的操作。

应该合理的分解为,一个表一个类。这个类就是处理这个表的单一职责。也是我们开发生涯中常用的。

在日常开发中,我们经常操作的就是 service 服务层。
而服务层的单一职责的设计起到整个项目维护的难易程度,也是最难分离职责的地方。
我们开发时经常把很多功能放在一个 service 里面。导致修改一个功能会左找右找,或者改很多地方。

所以高度的定位是我们未来要通过不断实践来决定的。

单一职责原则在生活中无处不在。


若博客中有错误或者说的不好,请勿介意,仅代表个人想法。
csdn博客:https://blog.youkuaiyun.com/LNView
本文地址:https://blog.youkuaiyun.com/LNView/article/details/79735095

有问题或者喜欢的欢迎评论。

转载请注明出处!!!!!!

参考资料
《大话设计模式》

为什么我把「大模型Clouder认证:基于百炼平台构建智能体应用」作为大模型学习的第一站?从 0 到拿证全流程经验分享 【摘要】作为一个刚拿下「大模型 Clouder 认证:基于百炼平台构建智能体应用」的过来人,想在开头就和大家聊聊这个认证的特殊意义 —— 在企业加速 AI 落地的今天,能用低代码快速构建智能体应用,已经成为 AI 从业者的核心竞争力。无论是企业微信客服提效、钉钉机器人自动化办公,还是网站智能助手升级,这些场景化能力正是当下数字化转型的刚需。 阅读详情

相关推荐

Infineon MOSFET开关损耗计算实战指南

本文是英飞凌MOSFET开关损耗计算的实战指南。针对MOSFET发热问题,文章深入剖析了开关损耗的产生机理,并基于Infineon数据手册的关键参数,手把手推导了开通与关断损耗的工程计算公式。同时,指南强调了栅极电阻、寄生参数等实际因素对损耗的影响,并提供了从理论计算到实测优化的完整路径,帮助工程师精准评估与优化电源设计。

weixin_29212867的博客 442

软件设计模式六大原则-单一职责原则 Simple Responsibility Principle

设计模式六大原则:单一职责原则 设计模式六大原则:接口隔离原则 设计模式六大原则:依赖倒置原则 设计模式六大原则:里氏替换原则 设计模式六大原则:迪米特法则   设计模式六大原则:开闭原则 定义: 不要存在多于一个导致类变更的原因。 一个类、接口、方法只负责一项职责。 优点: 降低类的复杂度 提高类的可读性 提高系统的可维护性 降低变更引起的风险 这个模式比较简单这里就不做demo了,如果有什么疑问可以留言。 ...

ppwwp的专栏 214

样本不均衡时AUC反而下降?用imbalanced-learn库实战解决分类陷阱

本文探讨了样本不均衡时AUC指标下降的现象,并通过imbalanced-learn库实战演示了如何解决这一分类陷阱。文章详细分析了不同采样技术(如SMOTE、ADASYN)对模型性能的影响,并提供了XGBoost和逻辑回归模型的优化建议,帮助数据科学家在实际项目中做出更明智的决策。

weixin_29174013的博客 342

设计模式:单一职责原则

设计模式:单一职责原则 中文名:单一职责原则 英文名:Single Responsibility Principle (SRP) 含义:对于一个类,应该仅有一个引起它变化的原因。通俗讲:如果有两个完全不一样的功能,就不应该把他们放在一个类中,一个类应该是一组相关性很高的函数,数据的封装。 示例: package com.csdnnew.csdnlogin; import

cassiePython的专栏 891

用HFSS复现经典论文:从零搭建带孔缝屏蔽箱体模型(附完整建模步骤与避坑指南)

本文详细介绍了如何使用HFSS电磁仿真软件复现经典论文中的带孔缝屏蔽箱体模型,包括从零搭建模型、设置激励与边界条件、求解优化及结果验证的全过程。特别提供了建模中的布尔运算陷阱、激励设置技巧等实操难点的避坑指南,帮助工程师和学生深入理解电磁屏蔽效能研究。

weixin_30530339的博客 157

Qt自带绘图与GDI+绘图方式比较_gdi+实时绘制qt(2)

2、GDI+是Windows操作系统中的图形设备接口,它提供了一套用于绘制图形的API,包括了图形渲染、图形变换、图形剪切、图形填充等功能,使开发者可以快速地开发出各种类型的图形应用程序。1、Qt是一个跨平台的C++应用程序框架,它提供了一套用于GUI编程的类库,包括了绘图、网络、XML、数据库、多线程等模块,使开发者可以快速地开发出高质量的跨平台应用程序。Qt提供了一套用于绘图的类库,包括了QPainter、QPen、QBrush等类,使开发者可以快速地进行图形绘制。

qq_17136213的博客 915

设计模式七大原则(一)-单一职责原则

单一职责原则:   一个对象应该只包含一个单一的职责,并且职责被完整的封装在一个类中。  另一种定义:   一个类应该只有仅有一个引起它变化的原因。 首先来了解一下类的职责,它分为:   数据职责:通过属性来体现;   行为职责:通过方法来体现。 (关于类可以看一下我之前写的java面向对象的一篇文章) ...

weixin_44294251的博客 365

7-1 链式基数排序 (20 分)

7-1 链式基数排序 (20 分) 实现链式基数排序,待排序关键字n满足1≤n≤1000,最大关键字数位≤5。 输入样例: 第一行输入待排序个数n(1≤n≤1000),再输入n个数(n的数位≤5)。 10 278 109 63 930 589 184 505 269 8 83 输出样例: 输出每趟分配-收集后链表中的关键字,趟数为序列中最大值的数位(如样例中930的数位为3),每行结尾有空格。 930 63 83 184 505 278 8 109 589 269 505 8 109 930 63 26

OwemShu的博客 4236

设计模式六大原则(1):单一职责原则

来自手机的一个java学习宝典的APP,代码和解释都是自己手打后实践了下! [code="java"]package study.test.legon; import java.util.Scanner; public class AcountYear { /** * 设计模式的六大原则,单一职责原则 * 题目:输入某年某月某日,判断这一天是这一年的第几天 ...

肥猫钓鱼 258

清华电子系保研面试全记录:五轮硬核考核+工程硕博专项解析(附真题)

本文详细解析了清华大学电子工程系保研面试的完整流程,重点剖析了其标志性的五轮专业面试(涵盖电路、电磁场、信号系统、计算机与AI)和综合组群面,并深入解读了工程硕博改革专项的考核要点与备战策略。文章提供了各专业组的真题示例与应对方法,旨在帮助电子信息相关专业学子系统准备,从容应对这场高强度的知识与综合素质挑战。

u0v1w2x3的博客 587

【AI Agent系列】【阿里AgentScope框架】0. 快速上手:AgentScope框架简介与你的第一个AgentScope程序

这是我们学习的第四款智能体框架了。前面我们学习了 AutoGPT、MetaGPT、LangGraph 等智能体应用开发框架,各有优缺点。今天我们开始学习AgentScope这一款多智能体开发框架。卷起来吧,多看看,多用用,没坏处。

同学小张的博客 5425

设计模式六大原则例子(二)-- 单一职责原则(SRP)例子

之前我们对设计模式的六大原则做了简单归纳,这篇博客是对单一职责原则进行的举例说明。 单一职责原则的意义对象不应该承担太多职责,正如人不应该一心分为二用。唯有专注,才能保证对象的高内聚;唯有单一,才能保证对象的细粒度。对象的高内聚与细粒度有利于对象的重用。一个庞大的对象承担了太多的职责,当客户端需要该对象的某一个职责时,就不得不将所有的职责都包含进来,从而造成冗余代码或代码的浪费。这实际上保证了DRY

yabay2208的博客 9367

基于Lstm+transformer的刀具磨损预测实战

基于Lstm+transformer的刀具磨损预测实战

2906

【轻松拿捏】设计模式六大基本原则(一)单一职责原则(SRP - Single Responsibility Principle)

单一职责原则(SRP - Single Responsibility Principle)是面向对象设计中的一个基本原则。一个类只应有一个引起它变化的原因,也就是说,一个类应该只负责一项职责或功能。降低复杂度:每个类只负责一个职责,使类更简单易懂。提高可维护性:当需求发生变化时,只有相关的类需要修改,减少了引入错误的可能性。增强可重用性:单一职责的类更容易在不同的上下文中复用。单一职责原则是构建高质量、可维护软件的重要基础,有助于提高代码的健壮性和可扩展性。听忆.-优快云博客。

边走、边悟、迟早变好 842

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java设计模式(一)单一职责原则single responsibility principle(SRP)

单一职责定义 应该有且仅有一个原因引起类的变更。 单一原则代码实现(原始版) 比如说:现在需要实现电话通话的4个过程:拨号,通话,回应,挂机。 此时设计一个接口: public interface IPhone{ //拨通电话 void dial(String phoneNumber); //通话 void chat(Object o); //挂机 void hangup(); } 看到上面的...

schcilin的博客 352

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【Java设计模式 经典设计原则】一 SOLID-SRP单一职责原则

单一职责原则是为了实现代码高内聚(功能相关高内聚)、低耦合(功能无关低耦合),提高代码的可复用性、可读性、可维护性。具体怎么拆分主观上依据对业务发展的认知和场景的分析持续重构,客观上依据几条可执行规则:代码的行数、属性、方法不要过多;类依赖与被依赖的程度较低;私有的通用方法不能过多;类要比较好命名,见名之意;类的属性操作比较均衡。虽然单一职责原则原则好,可不要单纯为了更单一去拆分,否则本来内聚的功能被拆分了后代码的可维护性就会变的很差。...............

MaoLin Tian's Blog 1003

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python 设计模式(二) 六大设计原则一 单一职责原则(SRP)

单一职责原则(single responsibility principle)        简称SRP。There should never be more than one reason for a class to change.仅有一种原因引起类的改变。一个类只负责一个职责。单一职责原则 这地址讲的很好,但不是用python语言实现的,在这里我用python语言实现一下。问题由来:类A负责...

ruguowoshiyu的博客 1460

设计模式之七大原则——单一职责原则(SRP)(一)

定义: 应该有且仅有一个原因引起类的变更。 There should never be more than one reason for a class to change. 优点: 1、类的复杂性降低,实现什么职责都有清晰明确的定义; 2、可读性提高,复杂性减低,可读性当然提高; 3、可维护性提高,可读性提高,可维护性当然提高; 4、变更引起的风险减低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的类有影响,对其他接口无影响,这对系统的扩展性、维护性都有非常大的帮助.

Gorden的博客 572

设计模式七大原则(一)——单一职责原则(SRP)

 就一个类而言,应该仅有一个引起它变化的原因(职责)。 职责就是对象能够承担的责任,并以某种行为方式来执行 。可以将数据库的增删改查理解成职责,即对数据的基本 操作。  单一职责原则对类来说,即一个类应该只负责一项职责。 如类A负责两个不同职责:职责1,职责2,当职责1需求变 更而改变A时,可能造成职责2执行错误,所以需要将类A 的粒度分解为A1,A2。 主要根据不同的角度划分职责,比如,...

qq_45272239的博客 185

设计模式六大原则(一):单一职责原则(Single Responsibility Principle)

单一职责(SRP)定义: 不要存在多于一个导致类变更的原因,通俗的说,即一个类只负责一项职责。 问题由来: 类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案: 遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改...

weixin_30346033的博客 92

设计模式入门一之单一单一职责原则(SRP)

单一职责原则(SRP Single Responsibility Principle) 一个类应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。我们可能只需要复用该类的某一个职责,但这个职责跟其它职责耦合在了一起,很...

weixin_34206899的博客 82

设计模式六大原则(一)----单一职责原则

设计模式六大原则之【单一职则原则】 一、什么是单一职责原则 首先, 我们来看单一职责的定义. 单一职责原则,全称Single Responsibility Principle, 简称SRP. A class should have only one reason to change 类发生更改的原因应该只有一个 就一个类而言,应该仅有一个引起它变化的原因。应该只有一个职责。如果一个类有一个以上的职责,这些职责就耦合在了一起。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这会导致脆弱的设计。当一

weixin_42469135的博客 1421

设计模式—— 一:单一职责原则

文章目录什么是单一设计模式?Why单一设计模式?More Single! More Single! 希望所有人安康! 什么是单一设计模式?Why单一设计模式? 单一职责原则的英文名称是Single Responsibility Principle,简称是SRP。 在项目中,会用到用户、机构、角色管理这些模块,基本上使用的都是 RBAC模型(Role-Based Access Control...

三分恶的博客 1771

[设计模式之禅读书笔记]001_设计模式六大原则(一):单一职责原则(Single Responsibility Principle)...

序言 《设计模式之禅》,与这本书结缘是在大三下学期,到图书馆借书的时候,看到一本很新的书,书名带个“禅”字,而当时又比较迷恋乔布斯。于是,不管它写的什么乱七八糟的内容就果断借着,拿回宿舍看。接着,放暑假期间,到金蝶实习,就把这本书带着看,怀着装逼的心态。整个实习两个月期间,这本书基本上没翻过,相反的,却把当时火起来的《山楂树之恋》给看了一遍。实习完回校,果断又把书还回去了。 今天,...

weixin_33806914的博客 86

设计模式系列(一)七大设计原则-----单一职责原则

七大设计原则之单一职责原则设计模式的目的单一职责原则代码案例单一职责原则注意事项c功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 设计模式的目的 代码编写过程中,我们的代码面临着 耦合性,内聚性 以及 可维护性,可扩展性,重用性,

shanggushenlong的博客 259

设计模式六大原则(一)–单一职责原则(C#)

单一职责原则(Single Responsibility Principle, SRP)是面向对象设计中的五大基本原则之一(SOLID原则)之一。它指出,一个类应该只有一个理由引起变化,即一个类应该只有一个职责。换句话说,一个类应该仅仅负责一个功能模块。单一职责原则要求每个类只有一个引起它变化的原因。也就是说,一个类应该只有一个责任或者说一个职责。单一职责原则是面向对象设计中的核心原则之一,通过将类的职责分离到不同的类中,它帮助我们创建更清晰、更易于维护的代码。

qq_35320456的博客 1040
上一篇: RedisTemplateUtil spring整合redis 的操作类,精心整合
下一篇: Spring 自动化构建环境 ,一次打包到处运行
Carey丶zsh
博客等级 码龄10年 15粉丝 47原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值