1.觀察者模式的定義:
觀察者設計模式定義了對象間的一種一對多的組合關系,以便一個對象的狀態發生變化時,所有依賴於它的對象都得到通知並自動刷新。
2.觀察者模式的原理:
實現觀察者模式有很多形式,比較直觀的一種是使用一種“注冊——通知——撤銷注冊”的形式。下面的三個圖詳細的描述了這樣一種過程:其中,觀察者模式定義了四種角色:抽象主題、具體主題、抽象觀察者、具體觀察者。 抽象主題(Subject):該角色是一個抽象類或接口,定義了增加、刪除、通知觀察者對象的方法。 具體主題(ConcreteSubject):該角色繼承或實現了抽象主題,定義了一個集合存入注冊過的具體觀察者對象,在具體主題的內部狀態發生改變時,給所有注冊過的觀察者發送通知。 抽象觀察者(Observer):該角色是具體觀察者的抽象類,定義了一個更新方法。 具體觀察者(ConcrereObserver):該角色是具體的觀察者對象,在得到具體主題更改通知時更新自身的狀態

3.本項目中的運用場景:

spring的事件驅動模型使用的是 觀察者模式,就是通過ApplicationEvent抽象類和ApplicationListener接口,可以實現ApplicationContext事件處理,監聽器在處理Event時,通常會進行判斷傳入的Event是不是自己所想要處理的,使用instanceof關鍵字。ApplicationEventMulticaster事件廣播器實現了監聽器的注冊,一般不需要我們實現,只需要顯示的調用applicationcontext.publisherEvent方法即可。
4.帶來的好處:
首先,封裝了設計模式,便於使用者,非常簡單,快捷。
其次,降低了程序之間的耦合
