贯穿设计模式-装饰者模式

样例代码

涉及到的项目样例代码均可以从https://github.com/WeiXiao-Hyy/Design-Patterns.git获取

需求

旨在不改变一个对象逻辑的前提下,为这个对象添加其他额外的职责

  1. 在业务投放的同时,需要给用户发放红包或者积分,在不改动的投放逻辑的前提下,增加一条异步的链路 → 装饰者模式
  2. 新增加的异步链路对支付主链路来说是弱依赖的,在业务高峰期可以将其功能下掉或30分钟之后再进行同步。
  3. 功能正常/下掉/30分钟之后再同步 → Apollo配置选项提供feature开关
  4. 30分钟同步 → 引入MQ死信队列来解决

UML图

Decorator实现了Component接口,又是和Component是组合关系

MQ死信队列解决延时任务方案

原理:NormalMQ Queue中没有配置消费者,发送消息设置了30分钟的最大消费时间,如果30分钟内没有被正常消费则转移到死信队列里再进行消费。

相关推荐
12344526 小时前
【面试复盘】有了equals为什么还要hashcode
java·后端
毕设源码-邱学长6 小时前
【开题答辩全过程】以 台球俱乐部管理系统为例,包含答辩的问题和答案
java·eclipse
蜗牛^^O^6 小时前
java中的JUC
java·开发语言
进阶小白猿6 小时前
Java技术八股学习Day17
java·jvm·学习
带刺的坐椅6 小时前
从 Chat 到 Agent:Solon AI 带你进入“行动派”大模型时代
java·ai·agent·solon·mcp·java25
扶苏-su7 小时前
Java--转换流-InputStreamReader 和 OutputStreamWriter
java·开发语言
我是小疯子667 小时前
深度学习实现智能文本摘要
java
heartbeat..7 小时前
SQL 常用函数大全:聚合、字符串、数值、日期、窗口函数解析
java·数据库·sql·函数
老蒋每日coding7 小时前
AI智能体设计模式系列(一)—— 提示词链
设计模式·ai编程
袁慎建@ThoughtWorks7 小时前
ThreadLocal那些事儿
java·jdk·多线程·threadlocal