type
status
date
slug
summary
tags
category
icon
password

一、定义

notion image
观察者模式:指多个对象存在一对多的依赖关系,当一个对象发生改变时,所有依赖它对象的通知并自动更新。这种模式有时又叫做发布-订阅模式,模型-视图模式

二、示例:

模拟场景: 1、模拟摇号抽车牌,摇号抽牌的结果会通过发送短信或者MQ消息给摇号人,需要对外部的⽤户做⼀些事件通知以及需要在主流程外再添加⼀些额外的辅助流程时该如何处理呢?
notion image

传统编码方式

把消息通知类的方法,耦合写入到摇号的方法内部,导致代码冗余,不满足单一职责原则

观察者模式设计

定义接口EventListener 处理消息监听的逻辑
短信消息
MQ消息
消息管理:订阅,取消订阅,唤醒消息
抽象类:重申抽奖的方法
子类实现,只需要关注摇号方法
测试:ApiTest

UML关系图

notion image
总结: 从我们最基本的过程式开发以及后来使⽤观察者模式⾯向对象开发,可以看到设计模式改造后,拆分出了核⼼流程与辅助流程的代码。⼀般代码中的核⼼流程不会经常变化。但辅助流程会随着业务的各种变化⽽变化,包括; 营销 、 裂变 、 促活 等等,因此使⽤设计模式架设代码就显得⾮常有必要。
此种设计模式从结构上是满⾜开闭原则的,当你需要新增其他的监听事件或者修改监听逻辑是不需要改动事件处理类的。但是可能你不能控制调⽤顺序以及需要做⼀些事件结果的返回继续操作,所以使⽤的过程时需要考虑场景的合理性。
 
JAVA【设计模式】中介模式JAVA【设计模式】状态模式
IT小舟
IT小舟
微信公众号:IT小舟
公告
type
status
date
slug
summary
tags
category
icon
password
notion image
你好,我是小舟。 欢迎来到我的博客,我喜欢运动、阅读、音乐和写作。如果有什么想要交流的,可以加我微信:upcodezhou。再次感谢你的光临!
notion image