观察者模式
发布订阅模式,定义一种一对多的依赖关系,一个主题对象可被多个观察者对象同时监听,使得每当主题对象状态变化时,所有依赖于它的对象都会得到通知并被自动更新
核心在于将观察者与被观察者解耦,以类似于消息/广播发送的机制联动两者,使被观察者的变动能通知到感兴趣的观察者们,从而做出相应的响应
应用场景
系统一方依赖于另一方行为的变动,使用观察者松耦合,使得一方变动通知到另一方,让另一方做出响应。
类图

image.png
实现方式
1.jdk实现
2.guava实现
3.自定义实现
通过容器,spring加载的方式自己实现观察者模式也相对简单
优缺点
1.松耦合,符合依赖倒置
2.分离表示层和逻辑层,建立触发机制
3.一对多通讯
缺点:
1.观察者数量较多,较为耗时
2.一个观察者异常,影响后续观察者
3.如果循环依赖,会有系统问题
访问者模式
将数据结构和数据操作分离的设计模式,是指封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作
较为复杂,一般不用