Java设计模式 ->观察者模式

观察者模式(发布订阅):Observer(pub/sub) Pattern行为型模式

    观察者模式定义一种一对多的依赖关系,一个主题对象可以被多个观察者对象同事监听,使得主题对象状态变化时,依赖它的对象会得到通知并被自动更新。
    观察者模式核心在于 观察者与被观察者解耦

观察者模式应用场景

1、当一个抽象模型包含两个方面内容,其中一个方面依赖另外一个方面
2、实现类似广播机制功能,只需分发广播,系统订阅对象自动接收。

观察者模式的优缺点

优点:
1、观察者和被观察者是松耦合的,符合依赖倒置原则
2、分离了表示层和数据逻辑层,并建立一套触发机制,使得数据变化响应到多个表示层上面
3、实现一对多的通讯机制,支持事件注册,当被观察者触发事件后,只有订阅的观察者可以接收通知。
缺点:
1、如果观察者数量过多,通知耗时
2、事件通知如果呈线性关系,如果其中一个通知处理异常,会影响后续观察者接收。
3、观察者和被观察者存在循环依赖,可能导致系统崩溃。

观察者模式源码应用

1、Google Guava
2、Spring ContextLoaderListener

发表评论

电子邮件地址不会被公开。 必填项已用*标注