码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot 项目中的观察者模式

时间:2018-10-20 19:50:48      阅读:508      评论:0      收藏:0      [点我收藏+]

标签:技术分享   就是   listener   依赖   crete   接口   快捷   ica   场景   

1.观察者模式的定义:

  观察者设计模式定义了对象间的一种一对多的组合关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。

2.观察者模式的原理:

  实现观察者模式有很多形式,比较直观的一种是使用一种“注册——通知——撤销注册”的形式。下面的三个图详细的描述了这样一种过程:其中,观察者模式定义了四种角色:抽象主题、具体主题、抽象观察者、具体观察者。 抽象主题(Subject):该角色是一个抽象类或接口,定义了增加、删除、通知观察者对象的方法。 具体主题(ConcreteSubject):该角色继承或实现了抽象主题,定义了一个集合存入注册过的具体观察者对象,在具体主题的内部状态发生改变时,给所有注册过的观察者发送通知。 抽象观察者(Observer):该角色是具体观察者的抽象类,定义了一个更新方法。 具体观察者(ConcrereObserver):该角色是具体的观察者对象,在得到具体主题更改通知时更新自身的状态

技术分享图片

3.本项目中的运用场景:

技术分享图片

       spring的事件驱动模型使用的是 观察者模式,就是通过ApplicationEvent抽象类和ApplicationListener接口,可以实现ApplicationContext事件处理,监听器在处理Event时,通常会进行判断传入的Event是不是自己所想要处理的,使用instanceof关键字。ApplicationEventMulticaster事件广播器实现了监听器的注册,一般不需要我们实现,只需要显示的调用applicationcontext.publisherEvent方法即可。

4.带来的好处:

  首先,封装了设计模式,便于使用者,非常简单,快捷。

  其次,降低了程序之间的耦合

Coding

 

SpringBoot 项目中的观察者模式

标签:技术分享   就是   listener   依赖   crete   接口   快捷   ica   场景   

原文地址:https://www.cnblogs.com/ustc-lx/p/9801671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!