设计模式-七个基本原则之一-单一职责原则 + SpringBoot案例

news/2024/11/13 21:41:41/

单一职责原理:(SRP) 面向对象七个基本原则之一

  • 清晰的职责:每个类应该有一个明确的职责,避免将多个责任混合在一起。
  • 降低耦合:通过将不同的职责分开,可以降低类之间的耦合度,提高系统的灵活性。
  • 易于维护:当需求发生变化时,只有相关的类需要修改,降低了修改的风险和成本。
  • 提高可读性:代码结构更加清晰,其他开发者能够更容易理解和使用。

        例子

例如权限管理,定义了一个功能,分为普通用户和VIP用户.... 

我们一般处理这样的代码会采用 接口 和 实现类的做法

即:接口负责定义用户行为的规范,而每个实现类则专注于各自角色的具体实现。

这种设计不仅清晰明了,还方便后续的扩展和维护。

        代码

整体结构

接口  

        用于制定规范

实现类 

        用于实现接口从而实现单一职责原则。而不是把所有代码写在一个类里面成一坨。

管理员用户

普通用户

测试类

        这里采用了Spring boot,如果没有学过的话则自己new一下即可。

代码连接:

设计模式: 设计模式的七大原则以及所有设计模式的案例


http://www.ppmy.cn/news/1546758.html

相关文章

Oracle 高水位线和低-高水位线(High Water Mark Low High Water Mark)

在Oracle的逻辑存储结构中(表空间-段-区-块),数据是存在数据段中的,通常一个表就是一个数据段,而段最终又由许多数据块组成。当数据存入数据块时,需要对块进行格式化,高水位线(High …

【AI日报】2024年11月13号

我回来啦!!发现自己好久不发文章了。 在某头部AI公众号实习的过程中,学到太多太多了,也感谢某位大神的指点,也衷心祝愿他的IP可以越做越好 之后因为时间关系,可能要自己出来单干了。 在实习过程中学到的…

大数据相关技术的基本概念?

一、Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Distributed File System)&#xff0…

Go语言 HTTP 服务模糊测试教程

写在前面: 此博客内容已经同步到我的博客网站,如需要获得更优的阅读体验请前往https://blog.mainjay.cloudns.ch/blog/go/fuzzing-test 作为开发人员,我们并不总能预见到程序或函数可能接收到的所有可能输入。 即使我们可以定义主要的边界情…

基本和引用数据类型以及对象字面量(day14)

一、基本和引用数据类型 1. 基本数据类型 String Number Boolean Null Undefined 引用数据类型 Object 2. JS中的变量都是保存到栈内存中 基本数据类型的值直接在栈内存中存储, 值与值之间时独立存在,修改一个变量不会影响其他变量 3. 对象&#xff…

应用于新能源汽车NCV4275CDT50RKG车规级LDO线性电压调节器芯片

关于车规级芯片(Automotive Grade Chip),车规级芯片是专门用于汽车行业的芯片,具有高可靠性、高稳定性和低功耗等特点,以满足汽车电子系统的严格要求。这些芯片通常用于车载电子控制单元(ECU)和…

FluentUI使用

首先向Qt Qml FluentUI组件库的作者zhuzichu520致敬! 一、源码下载地址: 1)GitHub - zhuzichu520/FluentUI: FluentUI for QML 2)GitCode - 全球开发者的开源社区,开源代码托管平台 二、Qt6下载地址: qt-online-i…

Pinpoint(APM)进阶--Pinot指标采集(System Metric/Inspector)

接上文 Pinpoint使用Pinot进行指标数据存储,Pinot流摄入需要Kafka 本文详解Kafka和Pinot的安装部署,以及Pinpoint的指标采集 Pinot 简介 Apache Pinot是一个实时分布式OLAP数据存储,专为低延迟、高吞吐量分析而构建,非常适合面…