面向对象设计原则——单一职责原则

【愚公系列】面向对象设计原则(一)-单一职责原则(Single Responsibility Principle or SRP) 面向对象设计原则是一些通用的软件设计原则,用于指导软件设计人员开发高质量、可扩展、可维护的软件系统。这些原则的作用如下:提高软件系统的可维护性:遵循面向对象设计原则可以将代码分解为更小、更专注的模块,从而降低代码的复杂性和耦合度,提高系统的可读性和可维护性。提高软件系统的可扩展性:开放封闭原则可以帮助软件系统更容易地适应变化,降低对现有代码的影响,从而提高软件系统的可扩展性和灵活性。 阅读详情

        单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。

        单一职责原则(Single Responsibility Principle,SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

        单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作,因此要将这些职责进行分离,将不同的职责封装在不同的类中,即将不同的变化原因封装在不同的类中,如果多个职责总是同时发生改变则可将它们封装在同一类中。单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关实践经验。

实例分析:

例如有一个类有以下设计:

图中connectionDatabase() 用来连接数据库,queryData()查询数据库,displayInterface()显示数据,现在用单一职责对其进行重构:

        FunctionManager类承担了太多的职责,既包含数据库相关方法,又包含数据显示的方法,如果在其它类中也需要连接数据库或者使用queryData()方法查询客户信息,则难以实现代码重用。无论是修改数据库连接方式还是修改图表显示方式都需要修改该类,它不止一个引起它变化的原因,违背了单一职责原则,因此需要对该类进行拆分,使其满足单一职责原则,该类可以拆分成三个部分:

  • DBUtil:负责连接数据库,包含connectionDatabase();

  • OperationDAO:负责操作数据库,如增、删、改、查操作,包含queryData();

  • DataChart:负责数据显示,包含displayInterface();

 

使用单一职责后的结构图:

 

LLC同步整流实战:从驱动时序到调试仿真,效率提升与避坑指南 同步整流技术是提升开关电源效率的关键手段,尤其在LLC谐振变换器中,通过低导通电阻MOSFET替代二极管可显著降低副边整流损耗。然而,驱动时序、电流过零检测及轻载模式切换是工程实践中的核心难点。从Vds检测原理到死区调节,再到仿真与实测验证,工程师需掌握完整的调试方法论。该技术广泛应用于通信电源、服务器电源及车载DC/DC,合理设计LLC同步整流方案能实现满载效率提升约1.8个百分点,同时优化热分布。本文以600W半桥LLC样机为线索,深入分析工作模态、驱动芯片选型、波形判断与仿真模型搭建,为电源设计提供可 阅读详情

相关推荐

CentOS7 编译升级GCC至9.3.0

1)下载GCC9.2.0源码并解压 从GCC官方FTP下载地址可以看到GCC最新版本为9.3.0。由于官网下载速度慢,实际上用清华大学的镜像站进行下载,代码如下: wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz #考虑到安装失败的可能性,创建一个临时文件夹来安装GCC...

haha123486的博客 1万+

1.单一职责原则

一、单一职责原则定义   单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。   另外一种定义:就一个类而言,应该仅有一个引起它变化的原因。 二、单一职责原则分析   (1)一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性越小,而且如果一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作。   (2)类的职责主要包括两个方面:数据职责和行为职责,数据职责通过其属性来体现,而行为职责通过其方法来体现。   (3)单一

qq_43403759的博客 8220

FANUC机器人KAREL编程实战:手把手教你用SOCKET指令连接外部设备(附完整.KL文件)

本文详细解析了FANUC机器人KAREL编程中SOCKET指令的应用,从开发环境配置到工业级通讯全流程,涵盖网络参数设置、模块化代码设计、错误处理及现场调试技巧。通过实战案例,帮助开发者掌握与外部设备稳定连接的关键技术,提升工业自动化系统的通讯可靠性。

weixin_30907935的博客 225

面向对象设计原则之单一职责原则

单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。       单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,

刘伟技术博客 5万+

用4690张图片搞定物流仓储难题:手把手教你训练YOLOv8纸箱检测模型(附完整源码)

本文详细介绍了如何利用YOLOv8目标检测技术解决物流仓储中的纸箱识别难题。通过4690张图片构建高质量数据集,提供完整的训练教程和源码,实现98.7%的mAP@0.5准确率。文章涵盖数据采集、模型训练、调参技巧到边缘计算部署的全流程,帮助读者快速构建智能仓储检测系统。

weixin_28717939的博客 377

疲劳容器的定义_FKM规范针对非焊接构件疲劳强度评估实例介绍(下篇)

一、写在前面FKM Inside ANSYS软件,该软件是在FKM 规范的基础上,在ANSYS Workbench内开发的进行非焊接构件及焊缝静强度和疲劳强度评估的工具包。基于ANSYS计算模型的信息,在图形用户界面定义相关设置,利用有限元分析计算结果,自动嵌入FKM规范要求的静强度计算和疲劳强度计算流程和方法,自动将应力结果和相关物理量传递给工具包,无须手动预先选择评估的热点区域,可以...

weixin_35925298的博客 1885

单一职责原则(Single Responsibility Principle,SRP)是面向对象设计原则之一,它指出一个类应该只有一个引起它变化的原因

单一职责原则(Single Responsibility Principle,SRP)是面向对象设计原则之一,它指出一个类应该只有一个引起它变化的原因,即一个类应该只有一个职责,只负责一项功能。一个应用实例是电话通话。总结起来,单一职责原则是指一个类应该只有一个职责,只负责一项功能。遵守单一职责原则可以降低类的复杂度,提高代码的可读性和可维护性,降低变更引起的风险。综上所述,面向对象设计原则的目的是为了实现软件系统的可维护性、可扩展性和可重用性,从而提高代码的质量和开发效率。

[Blog][Domain] programb.blog.youkuaiyun.com 437

Anaconda安装教程傻瓜教程

网上好多教程找的我心好累,为了方便新手安装,我这边整理了大致详细的教程,参考了好几个大佬的教程,废话不多说,直接开始~ **前言:**有人纠结先安装python还是安装anaconda,这边的建议是装anaconda,就不需要单独装python了。 其次,有小伙伴的Anaconda的安装分两种情况: 情况一:电脑现在没有装python或者现在装的可以卸载掉(装Anaconda时先卸python); 情况二:电脑目前装了python,但想保留它;

zlc2351951436的博客 5万+

*单一职责原则(Single Responsibility Principle, SRP)**,它是面向对象设计(OOD)中五大设计原则(SOLID 原则)的核心之一

一个类应该有且仅有一个引起它修改的原因,即**一个类只负责一种类型的功能(或一个明确的职责)**。 这里的“职责”可理解为“变化的原因”——如果一个类承担了两种或多种不同的职责,那么当其中一种职责需要修改时,可能会影响到其他职责的正常运行,从而增加代码的耦合度、降低可维护性。

[Blog][Domain] programb.blog.youkuaiyun.com 1515

组态王|以一定的时间间隔查询某个时间段内的历史数据

使用该函数其他都可以满足,唯一问题是变量的选择,当切换站点后查询历史数据时,所选的变量依然是上次站点查询时所选择的变量,每当更换站点查询时都需要重新选择变量,这一点太繁琐,是用户和操作者无法忍受的。但是由于现场可能数据变化并非太过频繁,想要实现记录频率不变,还是以1分钟一次的频率进行存储,但是报表查询的时候想要只显示整点的数据。其中日历控件的设置与之前的历史数据查询是一样的,报表的抬头设置都是不用变的,此处不再赘述,有兴趣的可以。以上为组态王中以一定的时间间隔查询某个时间段内的历史数据的实现过程。

做有价值的事,积累有价值的笔记! 2539

微信小程序 - error_msg:net::ERR_CONNECTION_RESET“(“errno“:600001,“errMsg“:“uploadFile:fail errcode:-101)

"errno":600001,"errMsg":"uploadFile:fail errcode:-101 cronet_error_code:-101 error_msg:net::ERR_CONNECTION_RESET"微信小程序,微信小程序wx.uploadFile报错,uniapp微信小程序uni.uploadFile上传文件报错,微信小程序调用wx.uploadFile返回错误ERR_CONNECTION_RESET,如何解决这个问题,上传图片出现报错,小程序上传视频报错,上传文件出现报错,如何

🏆 前端领域优质创作者 5407

单一职责原则——面向对象设计原则

单一职责原则也是面向对象设计原则中的一条,下面我们就来详细地对其进行介绍。 单一职责原则的定义 单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a clas

qq_41854911的博客 1939

(八)DDR_PHY架构及功能——(PUB组成、初始化及Training流程、Clock关系)

文章目录一、DDR_PHY结构组成1.1、DDR Memory子系统1.2、DDR_PHY架构组成1.3、PUB模块功能实现流程1.3.1、DDR系统初始化流程1.3.2、PLL初始化流程 一、DDR_PHY结构组成 1.1、DDR Memory子系统   Memory子系统主要由DDR Controller和DDR_PHY(含DDR_IO)两个部分组成。DDR Controller主要承担其它子系统(如CPU)与Memory子系统进行数据交互时的传输效率及调度,DDR_PHY主要负责数据交互过程中的传输速

Mr.翟的博客 1万+

【面向对象设计原则】之 单一职责原则(SRP)

刚重构完,深感clean code 之美,令吾陶醉,总结下吧。O(∩_∩)O 面向对象设计原则,有时这些原则之间相互依存(如OCP 与 DIP),有时又有点矛盾(如OCP 与 ISP) 虽只浅浅学习了SRP OCP LSP DIP ISP ,但还是被这思想深深震撼。 就一个类而言,应该仅有一个引起它变化的原因为什么要SRP?  情景:如果有多个动机耦合在一起,则一个动机可能会削弱或者抑制

fanfan4569的博客 499

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

11 单一职责原则——面向对象设计原则

单一职责原则也是面向对象设计原则中的一条,下面我们就来详细地对其进行介绍。 单一职责原则的定义 单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a cl

天道·乾坤 的博客 501

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

面向对象设计原则 单一职责原则(Single responsibility principle)

单一职责原则(SRP:Single responsibility principle) 又称单一功能原则,面向对象的基本原则之一。它规定 一个类应该只有一个发生变化的原因。 该原则由罗伯特·C·马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中给出。 但实际上我们很容易明白他的意思,却很难真正的理解它。 所谓职责是指类变化的原因。如果一个类有多于...

weixin_34090643的博客 200

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

面向对象设计原则——单一职责原则(SRP)

面向对象设计原则——单一职责原则(SRP)tags:设计模式 The single responsiblity principle states that every object should have a single responsibility,and that responsibility should be entirely encapsulated by the class.A

蛋子哥的博客 552

【面向对象设计原则】之单一职责原则(SRP)

单一职责原则是面向对象原则五大原则中最简单,也是最重要的一个原则, 他的字面定义如下: 单一职责原则(Single Responsibility Principle, SRP): 一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 从定义中可以看出在定义类的时候要将职责划分清楚, 不能让一个类负责干多个事情。换句话说就是一个类只有一个引起他变化的...

weixin_30551947的博客 99

单一职责原则——面向对象设计原则——小马同学@Tian

单一职责原则——面向对象设计原则 单一职责原则也是面向对象设计原则中的一条,下面我们就来详细地对其进行介绍。 单一职责原则的定义 单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one

SigleDog的博客 211

面向对象设计原则(一):单一职责原则(SRP)

单一职责原则(Single responsibility principle,SRP)是面向对象设计(OOD)中比较重要的一种,下面来总结单一职责原则的知识点,包括:1、什么是单一职责原则、什么是职责?2、为什么需要遵守单一职责原则,违反单一职责有什么坏处?3、单一职责原则需要注意什么?4、单一职责原则的应用案例。

tjiyu的博客 3700

面向对象设计原则--单一职责原则(SRP)

晚上在宿舍把WEBCAST翻出来,听了李建忠讲的关于面向对象设计的几天基本设计原则的课,半懂非懂听了下来,听完之后除了茫然还是茫然!也好,只有这样才能知道自己所知甚浅,所学甚糙!革命远未成功,吾须戒骄戒躁!  (PS:个人觉得李建忠讲课水平一般,可能他是一个非常好的程式员,但不是一个好的讲课员,大概程式员都有这个通病,写个程序哪怕再复杂的程序都能应付自如,但让他讲课甚至是讲几句话,总让人感觉词不搭

Ben·Yu 笨鱼 BLOG 596

常见的面向对象设计原则-单一职责原则(Single Responsibility Principle)

常见的面向对象设计原则 1. 单一职责原则 SRP 一个类应该仅有一个引起它变化的原因。 2. 开放关闭原则 OCP 一个类应该对外扩展开放,对修改关闭。 3. 里氏替换原则 LSP 子类型能够替换掉它们的父类型。 4. 依赖倒置原则 DIP 要依赖于抽象,不要依赖于具体类,要做到依赖倒置,应该做到: * 高层模块不应该依赖底层模块,二者都应该依赖于抽象。 * 抽象不应该依赖于具体实现,具体实现应...

大胡子康贝勒爷 281

Java面向对象设计原则4——单一职责原则

在我们学习面向对象编程的时候,总会出现一些问题,好比以前刚刚写好的代码,上线测试可以、正常运行,突然有一天说要加一个功能,改完之后,发现以前正常运行的功能不能用了,类似这样的问题有好多好多,为了避免类似的事件发生,程序员一定要根据这些原则去开发程序。 我们一个一个来学习,今天来学习7大面向对象设计原则之一,单一职责原则。 单一职责原则: 单一职责原则(Single Responsibilit...

胖子胖子大胖子的博客 1193

【设计原则】单一职责原则(SRP):构建高内聚的面向对象系统

单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。

OpenSeek的博客 525

面向对象设计原则之单一职责原则(SRP)

面向对象设计原则之单一职责原则(SRP) 单一职责的原则告诉我们:在软件系统中,如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化肯呢过会消弱和抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏[ASD],事实上我们在做编程的时候很自然地就会跟一个类加各式各样的功能。

戚银的博客 1678
上一篇: 面向对象设计原则——合成复用原则
下一篇: 面向对象设计原则——迪米特法则
OODeveloper
博客等级 码龄12年 43粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值