[开端]JAVA抽象类使用到redis观察着

ops/2024/12/23 6:30:54/

一、绪论

当redis内容发生变化时需要通知一些观察者做一些动作怎么做?

二、JAVA抽象类

java">public abstract class AbstractRedisChangeListener {public abstract void change(String key, String value, String crudType);
}

使用abstract进行修饰一个类

其中抽象类 可以定义抽象方法

 public abstract void change(String key, String value, String crudType);

也是需要abstract来修饰,而且抽象类不需要有方法体{}

 这样我们就相当于制定了一个自定义的类型。

三、监听redis是否有变化

java">@Service
public class RedisExtendService {private List<AbstractRedisChangeListener> listeners;/*** redis 数据变化时通知观察者* @param key* @param value*/public void redisDataChange(String key, String value, String crudType) {if(CollUtil.isEmpty(listeners)) {return;}for (AbstractRedisChangeListener listener : listeners) {listener.change(key, value,crudType);}}/*** 添加观察者,项目上类启动时添加* @param listener*/public void addListener(AbstractRedisChangeListener listener) {if(listeners == null) {listeners = new ArrayList<>();}listeners.add(listener);}
}

 if(listeners == null) {
            listeners = new ArrayList<>();
        }
        listeners.add(listener);

创建了观察者列表 


http://www.ppmy.cn/ops/93118.html

相关文章

Ubuntu 安装Redis

Ubuntu 安装Redis 安装redis-server apt-get install redis-server启动服务 service redis-server start默认的配置文件路径&#xff1a;/etc/redis/redis.conf 默认的安装路径&#xff1a;/var/lib/redis rootDESKTOP-0JS7U4E:/var/lib/redis# tree . ├── appendonly.…

经典街机游戏:拳皇97 for Mac(KOF97) 支持M1 中文移植版

游戏玩家一定会上手的游戏就是拳皇系列了吧&#xff0c;其中最经典的就是拳皇97&#xff0c;小编为大家提供的就是拳皇97mac版&#xff0c;熟悉的场景&#xff0c;熟悉的操作&#xff0c;原来Mac上打街机也可以这么爽&#xff0c;亲测拳皇97 for Mac 支持M1 Mac&#xff0c;喜欢…

AI的IDE:Cursor配置虚拟python环境(conda)

AI的IDE&#xff1a;Cursor配置虚拟python环境&#xff08;conda&#xff09; Cursor是一个AI的IDE&#xff0c;是从VSCode源代码中fork出来的&#xff0c;专注于和AI一起Coding而生。https://www.cursor.com/是官方地址。最近开始逐渐的试用Cursor&#xff0c;之前一直是VSCod…

Python学习笔记(四)

# 数据容器分为5类&#xff0c;分别是&#xff1a;列表&#xff08;list)、元组&#xff08;tuple)、字符串&#xff08;str&#xff09;、集合&#xff08;set)、字典&#xff08;dict)""" 演示数据容器之&#xff1a;list列表 语法&#xff1a;[元素&#xff…

数据加密-AES数据加密及C#实现

引言 AES&#xff08;Advanced Encryption Standard&#xff09;是一种广泛使用的对称密钥加密算法&#xff0c;由美国国家标准与技术研究院&#xff08;NIST&#xff09;于2001年发布。AES以其高效、安全的特点&#xff0c;在数据加密领域占据了重要地位。 using System; us…

白骑士的Matlab教学高级篇 3.1 高级编程技术

系列目录 上一篇&#xff1a;白骑士的Matlab教学进阶篇 2.5 Simulink 高级编程技术在MATLAB中扮演着至关重要的角色&#xff0c;帮助用户更高效地编写复杂程序、提高代码的可维护性和可读性。本节将介绍面向对象编程、函数句柄与回调函数、错误处理与调试的相关内容。 面向对…

软考高级-一

人生除了无聊之外 就是一堆考证了&#xff0c;加油吧 软件过程模型 瀑布模型&#xff1a;需求明确 需求分析/软件设计/程序设计/编码实现/单元测试/集成测试/系统测试/运行维护 需求完整/正确性难确定&#xff0c;严格串行化&#xff0c;每个阶段一次性完全解决该阶段工作&am…

Leetcode周赛与交替子数组问题

LC3242 类和对象题&#xff0c;用 map 记录一下位置&#xff0c;模拟即可 class neighborSum { public:int n, m;vector<vector<int>> grid;map<int, pair<int, int> > pos;int dx[8] {1, -1, 0, 0, 1, 1, -1, -1};int dy[8] {0, 0, 1, -1, -1, 1,…