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

server/2024/11/14 13:09:23/

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

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

        例子

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

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

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

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

        代码

整体结构

接口  

        用于制定规范

实现类 

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

管理员用户

普通用户

测试类

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

代码连接:

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


http://www.ppmy.cn/server/141595.html

相关文章

Node.js笔记

问:npm install时,报错误:Failed to remove some directories。怎么办? 答:我在使用npm安装electron时总是报上面的错误,具体如下,我问遍了KIMI和通义,回答的方法都解决不了。还搜索…

组件间通信(组件间传递数据)

组件间通信(组件间传递数据) 在 Vue.js 中,组件间通信是开发者需要经常处理的任务,特别是在构建具有多层次组件的复杂应用时。根据组件之间的关系和数据流的复杂程度,可以采用不同的通信方式。以下是常用的几种组件间通信方式: …

在uniapp中封装请求接口 (带刷新token)

import { apiUrl } from /config/global-config.js import { useUserStore } from ../stores import { usePageRoute } from "/composable/usePageRoute.js"// 默认配置 const DEFAULT_CONFIG {timeout: 60000,// showLoading: true,// loadingText: 加载中... }// …

Kubernetes的基本构建块和最小可调度单元pod-0

文章目录 一,什么是pod1.1pod在k8s中使用方法(1)使用方法一(2)使用方法二 1.2pod中容器的进程1.3pod的网络隔离管理(1)pause容器的作用 1.4 Pod分类:(1)自主式…

C语言第九周课——经典算法

目录 一、冒泡法排序 1.1原理 1.2代码实现(以升序排序为例) 1.3逻辑 1.4分析 二、二分法查找 2.1原理 2.2代码实现 2.3逻辑 2.4算法效率分析 三、素数判断 3.1原理 3.2代码实现 3.3逻辑 3.4分析 一、冒泡法排序 1.1原理 冒泡排序&…

数据仓库还是数据集市?这俩怎么选?

数据仓库和数据集市作为支持决策分析的两种不同方式,根据各自的特点和优势,有不同的应用场景,今天就来探讨下数据集市和数据仓库该怎么选? 一、数据集市和数据仓库对比 1、数据集市与数据仓库的关系: 1)数…

linux进程管理

进程和线程的关系 以下介绍为linux环境 进程是操作系统中一个运行中的程序,是资源分配和调度的基本单位。每个进程有自己独立的内存空间、文件描述符、堆栈等系统资源 线程(Thread) 是 CPU 调度的最小单位,是进程中的一个执行流…

鲁棒自适应滤波,MATLAB

鲁棒自适应滤波是一种改进的信号处理技术,旨在提高滤波器在面对不确定性和动态环境变化时的性能。它结合了自适应滤波和鲁棒控制的理念,以便在有噪声或异常值的情况下更有效地估计信号。 文章目录 关键特点主要方法数学公式鲁棒性增强示例代码运行结果 总…