Java设计模式之观察者模式
这一次介绍一个非常常用的设计模式,通过这个模式可以完成非常优秀的设计。
简介
通过定义对象之间的一对多关系,在主对象的状态发生变化之后所有依赖对象都会立即受到事件通知。
目标对象(Subject)——可以注册多个观察者
观察者(Observer)——定义一个通过触发事件来操作的方法
具体目标(ConcreteSubject)——定义状态
具体观察者(ConcreteObserver)——定义状态和update方法的实现
应用场景
- 发布订阅场景
- 服务注册发现等
实例
观察者模式的代码结构
客户端代码
输出
总结
观察者模式,可以让发布订阅更加规范,针对一对多的场景进行解耦。可以参考消息队列的push方式,这样做实时性更好。在服务治理的时候,服务节点是否存在也可以利用这种设计思想。还有很多场景,希望小伙伴们多多评论交流。