我們使用jdk提供的api來實現乙個觀察者模式,學生向老師提問問題,然後通知老師有學生提問,這個案例裡面,老師屬於觀察者,需要實現observer介面。學生屬於被觀察者,需要繼承observable類。學生發生變化通知老師。
public class student extends observable
public void setname(string name)
public void askquestions(string question)
}public class teacher implements observer
}public static void main(string args)
private static final long serialversionuid = 1l;
private string eventtype;
private string message;
public string geteventtype()
public void seteventtype(string eventtype)
public string getmessage()
public void setmessage(string message)
public messageevent(object source)
}
@component
string eventtype = event.geteventtype();
string message = event.getmessage();
//發布事件的物件
object object = event.getsource();
}}
public static void main(string args)
上面我們就是用spring完成了乙個簡單的觀察者模式,如果結合spring ***awrae則可以監聽spring的生命週期。現實場景中用到的觀察者模式還是很多的。觀察者和被觀察者之間建立了乙個抽象的耦合。並且支援廣播的模式。 設計模式之觀察這模式
觀察者模式 既關注的主題發生變化通知觀察者 實現方式 兩個介面 1 主題介面 包含新增 刪除觀察者以及通知觀察者更新資料的方法 2 觀察者介面 規定具體觀察者用來更新資料的方法 介面實現 1 主題介面實現 實現主題介面的乙個例項,通常需要使用乙個集合arraylist存放觀察者引用,以便資料變化時通...
設計模式之觀察者設計模式
事件源 就是被監聽的物件,事件類 裡面封裝了事件源物件,裡面繫結了事件類,在 裡面拿到事件類物件,就可以監聽事件源中的行為 呼叫了什麼方法 public inte ce studentlistenerpublic class student public string getname public ...
設計模式之觀察者模式
首先說了乙個自己的小例子吧,前兩天我的乙個朋友來找我玩,因為路途比較遠,我需要知道他的位置,然後安排好時間去接他,那麼在這個例子中,我就是乙個觀察者,需要時時刻刻觀察他的位置,我的朋友就是乙個被觀察者。那麼需要知道我朋友的位置,就有兩種方式,第一,我自己打 問,第二,我的朋友告訴我,下面我們來看看這...