# gupaoedu-vip-pattern-observer **Repository Path**: lichaoying/gupaoedu-vip-pattern-observer ## Basic Information - **Project Name**: gupaoedu-vip-pattern-observer - **Description**: java架构师_设计模式_观察者模式 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-01-08 - **Last Updated**: 2022-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java架构师-设计模式-观察者模式 标签(空格分隔): java架构师-设计模式 --- ## 观察者模式:***任务完成时通知*** spring 可参考 ContextLoaderListener ## 应用场景 观察者模式(ObserverPattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新,属于行为型模式。观察者模式有时也叫做发布订阅模式。观察者模式主要用于在关联行为之间建立一套触发机制的场景。 比如:微信朋友圈动态通知、GPser 生态圈消息通知、邮件通知、广播通知、桌面程序的事件响应等(如下图) ![image_1ddba6qls1m8lih16v7et6krf9.png-182.2kB][1] 现在大家都用过我们的 GPer 生态圈了,当小伙伴们在 GPer 生态圈中提问的时候,如果有设置指定老师回答,对应的老师就会收到邮件通知,这就是观察者模式的一种应用场景。我们有些小伙伴可能会想到 MQ,异步队列等,其实 JDK 本身就提供这样的 API。 观察者模式的优缺点 优点: 1、观察者和被观察者之间建立了一个抽象的耦合。 2、观察者模式支持广播通信。 缺点: 1、观察者之间有过多的细节依赖、提高时间消耗及程序的复杂度。 2、使用要得当,要避免循环调用。 [1]: http://static.zybuluo.com/countryday163/evqu5c9qaam1cksbil5xrw32/image_1ddba6qls1m8lih16v7et6krf9.png