观察者模式、访问者模式

观察者模式

发布订阅模式,定义一种一对多的依赖关系,一个主题对象可被多个观察者对象同时监听,使得每当主题对象状态变化时,所有依赖于它的对象都会得到通知并被自动更新

核心在于将观察者与被观察者解耦,以类似于消息/广播发送的机制联动两者,使被观察者的变动能通知到感兴趣的观察者们,从而做出相应的响应

应用场景

系统一方依赖于另一方行为的变动,使用观察者松耦合,使得一方变动通知到另一方,让另一方做出响应。

类图

image.png

实现方式

1.jdk实现
2.guava实现
3.自定义实现
通过容器,spring加载的方式自己实现观察者模式也相对简单

优缺点

1.松耦合,符合依赖倒置
2.分离表示层和逻辑层,建立触发机制
3.一对多通讯
缺点:
1.观察者数量较多,较为耗时
2.一个观察者异常,影响后续观察者
3.如果循环依赖,会有系统问题

访问者模式

将数据结构和数据操作分离的设计模式,是指封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作
较为复杂,一般不用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容