自定義監聽事件
物件之間存在一對多或者一對一依賴,當乙個物件改變狀態,依賴它的物件會收到通知並自動更新。 mq其實就屬於一種觀察者模式,發布者發布資訊,訂閱者獲取資訊,訂閱了就能收到資訊,沒訂閱就收不到資訊。
1、觀察者和被觀察者是抽象耦合的。
2、建立一套觸發機制。
1、如果乙個被觀察者物件有很多的直接和間接的觀察者的話,將所有的觀察者都通知到會花費很多時間。
2、如果在觀察者和觀察目標之間有迴圈依賴的話,觀察目標會觸發它們之間進行迴圈呼叫,可能導致系統崩潰。
package com.tukecloud.spring;
import org.springframework.context.event.contextrefreshedevent;
/*****
* @author: jamison huang
* @description: 建立監聽物件
****/
public
class
implements
}
<?xml version="1.0" encoding="utf-8"?>
xmlns
=""xmlns:xsi
=""xsi:schemalocation
=" /spring-beans.xsd"
>
class
=/>
beans
>
3測試public
class
springcontexttest
}
結果:
監聽到容器初始化完成!1.定義事件監聽物件: messageeventlistener
public
class
messageeventlistener
implements
}
2.定義事件物件: messageeventpublic
class
messageevent
extends
}
3.將物件新增到容器中:messageeventlistener"messageeventlistener"
class
="com.tukecloud.spring.messageeventlistener"
/>
4.建立測試public
static
void
main
(string[
] args)
5.結果監聽到了對應事件!org.springframework.context.event.contextrefreshedevent監聽到了對應事件!com.tukecloud.spring.messageevent
設計模式之Spring中觀察者模式
定義物件之間存在一對多或者一對一依賴,當乙個物件改變狀態,依賴它的物件會收到通知並自動更新。mq其實就屬於一種觀察者模式,發布者發布資訊,訂閱者獲取資訊,訂閱了就能收到資訊,沒訂閱就收不到資訊。優點1.觀察者和被觀察者是抽象耦合的。2.建立一套觸發機制。缺點1 如果乙個被觀察者物件有很多的直接和間接...
設計模式之觀察模式
我們使用jdk提供的api來實現乙個觀察者模式,學生向老師提問問題,然後通知老師有學生提問,這個案例裡面,老師屬於觀察者,需要實現observer介面。學生屬於被觀察者,需要繼承observable類。學生發生變化通知老師。public class student extends observabl...
設計模式之觀察這模式
觀察者模式 既關注的主題發生變化通知觀察者 實現方式 兩個介面 1 主題介面 包含新增 刪除觀察者以及通知觀察者更新資料的方法 2 觀察者介面 規定具體觀察者用來更新資料的方法 介面實現 1 主題介面實現 實現主題介面的乙個例項,通常需要使用乙個集合arraylist存放觀察者引用,以便資料變化時通...