1. 程式人生 > >SpringBoot 專案中的觀察者模式

SpringBoot 專案中的觀察者模式

1.觀察者模式的定義:

  觀察者設計模式定義了物件間的一種一對多的組合關係,以便一個物件的狀態發生變化時,所有依賴於它的物件都得到通知並自動重新整理。

2.觀察者模式的原理:

  實現觀察者模式有很多形式,比較直觀的一種是使用一種“註冊——通知——撤銷註冊”的形式。下面的三個圖詳細的描述了這樣一種過程:其中,觀察者模式定義了四種角色:抽象主題、具體主題、抽象觀察者、具體觀察者。 抽象主題(Subject):該角色是一個抽象類或介面,定義了增加、刪除、通知觀察者物件的方法。 具體主題(ConcreteSubject):該角色繼承或實現了抽象主題,定義了一個集合存入註冊過的具體觀察者物件,在具體主題的內部狀態發生改變時,給所有註冊過的觀察者傳送通知。 抽象觀察者(Observer):該角色是具體觀察者的抽象類,定義了一個更新方法。 具體觀察者(ConcrereObserver):該角色是具體的觀察者物件,在得到具體主題更改通知時更新自身的狀態

3.本專案中的運用場景:

       spring的事件驅動模型使用的是 觀察者模式,就是通過ApplicationEvent抽象類和ApplicationListener介面,可以實現ApplicationContext事件處理,監聽器在處理Event時,通常會進行判斷傳入的Event是不是自己所想要處理的,使用instanceof關鍵字。ApplicationEventMulticaster事件廣播器實現了監聽器的註冊,一般不需要我們實現,只需要顯示的呼叫applicationcontext.publisherEvent方法即可。

4.帶來的好處:

  首先,封裝了設計模式,便於使用者,非常簡單,快捷。

  其次,降低了程式之間的耦合

Coding