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

news2024/12/28 11:27:18

目录

  • 定义
  • 作用及影响
  • 示例

面向对象设计原则之开-闭原则
面向对象设计原则之里式替换原则
面向对象设计原则之依赖倒置原则
面向对象设计原则之单一职责原则

定义

单一职责原则 / 单一功能原则 (Single Responsibility Principle,SRP), 规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。
原始定义:There should never be more than one reason for a class to change。
即:一个类应该只关心一种事情,解决一种问题。

作用及影响

如果代码不满足这个原则, 并不会导致大面积的代码重写, 只不过:

  • 一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力;
  • 当客户端需要该对象的某一个职责时,不得不将其他不需要的职责全都包含进来,从而造成冗余代码或代码的浪费。

示例

一个工具类中包含多种工具方法,如果其中一个功能修改,此类就要进行修改。
在这里插入图片描述
我们可以进行修改,拆分成多个工具类,每个工具类中只关心一种类型的工具方法。

在这里插入图片描述

注意:单一职责同样也适用于方法。一个方法应该尽可能做好一件事情。如果一个方法处理的事情太多,其颗粒度会变得很粗,不利于重用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验2.2.1 交换机VLAN的划分

实验2.2.1 交换机VLAN的划分 一、任务描述二、任务分析三、实验拓扑四、具体要求五、任务实施1.重命名交换机,关闭干扰信息,并创建vlan。2.通过display vlan查看vlan相关信息3.配置Access接口及分配vlan接口。4.查看vlan的相关信息。 六、任务验收七、任…

【PXIE301-211】青翼科技基于PXIE总线的16路并行LVDS数据采集、1路光纤数据收发处理平台

板卡概述 PXIE301-211是一款基于PXIE总线架构的16路并行LVDS数据采集、1路光纤收发处理平台,该板卡采用Xilinx的高性能Kintex 7系列FPGA XC7K325T作为实时处理器,实现各个接口之间的互联。板载1组64位的DDR3 SDRAM用作数据缓存。板卡具有1个FMC&#xf…

婚纱摄影行业如何利用软文精准获客

婚纱摄影在整个结婚流程中处于中上游,因此婚摄环节是整个婚庆的重要环节,市场的强烈需求也使整个行业的规模不断扩张,那么在激烈的市场竞争中,婚纱摄影行业应该如何获得源源不断的客户呢,可以试试软文,接下…

浏览器调试模式获取链接信息(获取京东cookie为例)

通过浏览器的调试模式,获取京东cookie变量pt_pin和pt_key。 一、登录 1)打开网页 浏览器打开手机版京东网页:m.jd.com 2)登录账号 点击【登录】按钮,输入账号密码登录 二、调试模式 1)停留在要调试的…

计算机基础知识35

进程和线程的比较 1. 进程的开销比线程的开销大很多 2. 进程之间的数据是隔离的,但是,线程之间的数据不隔离 3. 多个进程间的线程数据不共享----->让进程通信(IPC)---->进程下的线程也通信了---->队列 GIL全局解释器锁(重要理论) # 虽然一个进程…

“智慧工地”施工现场管理一体化云平台,支持多端展示(PC端、手机端、平板端)

智慧工地平台源码,微服务架构JavaSpring Cloud UniApp MySql 支持多端展示(PC端、手机端、平板端) 智慧工地是什么? 智慧工地主要围绕绿色施工、安全管控、劳务管理、智能管理、集成总控等方面,帮助工地解决运营、管理…

cario库——C++画图

文章目录 RGBA1. 多个(x,y)坐标点,连成线2. 画圆3. 填充颜色4. 曲线图 RGBA rgb:红绿蓝 rgb(0,0,0):黑色rgb(255,255,255):白色 rgba:红绿蓝透明度(0:完全透明,1:完全不…

如何挑选多用户商城源码?

数字化时代,电子商务已经成为了商业发展的重要方向。无论是大型企业还是个人创业者,都希望能够通过搭建一个多用户商城来拓展自己的业务,并与更多的消费者建立联系。 对于大多数人来说,从零开始开发一个多用户商城是一项巨大的挑战…

PTA 小字辈(树)

题目 本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号&#…

minikube创建一个pod并暴露端口(使用docker驱动安装)

因为minikube使用service暴露端口是使用nodeIP:nodePort 而不是 localhost:nodePort 公开访问。我们只能使用kubectl的端口转发功能或者使用iptables的转发功能来实现外网服务暴露。 我这里使用shiro来举例 apiVersion: apps/v1 kind: Deployment metadata:name: shiro550 spe…

财务对账-财务收发存-业务收发存

务对账是指将公司的账目与银行等第三方提供的相关账单进行核对比对,以确定公司记录的交易是否与银行或其他第三方的记录一致。对账的具体步骤通常包括以下几个方面: 收集资料:首先需要收集公司的财务记录,包括公司银行账户的流水…

学员分享| 一个普通学员的HCIE-DATACOM备考之路!

大家好,我是G-LAB IT实验室的周同学,在这篇文章中,我将分享我的备考HCIE数通方向的心路历程。我的备考之路👇 ——备考理论—— 我从一年前开始了HCIE数通方向的备考。一开始,我并没有完全了解这个认证的难度和复杂性…

免费Scrum管理工具-Leangoo领歌

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 
 Leangoo领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速…

vue 插槽-默认插槽

vue 插槽-默认插槽 **创建 工程: H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day05\准备代码\07-插槽-默认插槽 vue --version vue create…

CMMI软件能力成熟度认证指南来了

CMMI能力成熟度模型集成,是一种评估或认证体系。其核心理念是:过程决定质量,这六个字能够让大家对CMMI有了一个大概的了解。是的,重点是过程,CMMI评估的核心内容也是过程。主要是CMMI研究院主任评估员根据CMMI模型检查…

torch版本对应的torch_geometric与torch-sprse/cluster/scatter库的正确安装

torch_geometric官网: Installation — pytorch_geometric documentation 使用上述标红命令即可快速安装需要的包(确定自己环境中安装的pytorch版本以及cuda版本,使用对应的命令即可) 如安装的pytorch为1.60,cuda为1…

10款远程办公软件,助你事半功倍,晋升快如闪电

选择一个易于使用和方便的远程软件,可以提高团队的整体效率,减少加班,使整个团队更受益。互联网行业从产品经理、UI/从UX设计师到技术开发和测试人员,每一个环节都需要密切沟通和跟踪,在远程沟通中及时发现问题&#x…

广东广西大量工地建筑支模

近年来,广东广西地区的建筑工地发展迅猛,为满足日益增长的建筑需求,大量工地都需要使用支模模板。支模模板是建筑施工中不可或缺的重要工具,用于搭建楼层、梁柱等结构的模板系统。在广东广西,有许多专业的支模模板厂家…

万物归宗系列01-html基本语法

万物归宗系列&#xff0c;即什么都懂一点系列。 HTML是标签语言&#xff0c;一般成双成对。 Hypertext Markup Language&#xff1a;超⽂本标记语⾔。是⽤来制作⽹页的⼀种标记语⾔。 1 基本框架 <!DOCTYPE html> <html lang"en"> <head><meta…

DAC8563数模转换模块的使用介绍

前言 DAC8563为16位低功耗、电压输出、双通道的数模转换器&#xff0c;其包括一个2.5V4ppm/C 内部基准&#xff0c;从而提供了一个 2.5V 或 5V 的满量程输出电压范围。 此内部基准有一精度&#xff0c;并且能够在 VREFIN/VREFOUT引脚上提供或吸收高个 5mV 的初始达 20mA 的电流…