观察者模式
# 观察者模式
# 概念
一个动作的发生可以让其他观察者知道
# 应用
# jdk的observer和 Observable
观察者(observer)注册(addObserver())在被观察者(observable)上,通过方法notifyObservers
来执行每个观察者的update方法,有意思的是,为了防止在循环执行每个观察者的update方法时,可能存在删除或者添加观察者,引起结果的不正确,执行notifyObservers
方法时,都会先生成一个观察者集合快照,并给他加上了锁,使用快照来循环,就不会出现意外。
# guava的eventbus
事件方法 注册表<classType(入参class类型),action(包含目标对象和执行方法)> 默认是单线程线程池 可以传入线程池 多线程执行监听动作
# spring的eventListener
事件 监听者 发布者 注册表applicationContext 它通过线程池,支持异步非阻塞、同步阻塞这两种类型的观察者模式
上次更新: 2022/08/23, 12:44:32