java 觀察者模式

2021-07-04 16:26:33 字數 805 閱讀 5983

觀察者模式顧名思義就是觀察乙個物件的變化並且做相應的動作。

舉個例子:

乙個學生可以有學習,睡覺的動作,但是如果在他做這些事情之前他媽媽提醒他下面該作甚麼。一旦他學習,就提醒他要先預習課程,一旦他睡覺就提醒他要先洗腳。

我們來先定義乙個學生實體:

public class student

public student(string name)

public void study()

system.out.println(name+":學習");

}public void sleep()

system.out.println(name+":睡覺");

}//申請我要被媽媽監視的入口

public void addstudentlistener(studentlistener listener)

}定義一下監視的事件源也就是被監視者:

public class studentevnet

public object getsource()

}定義一下監視後的動作:

public inte***ce studentlistener

有了這些我們就可以具體實現:

public class main

public void presleep(studentevnet e)

});st.sleep();

st.study();}}

執行結果:

dsp:睡覺前先洗腳

dsp:睡覺

dsp:學習前先看書

dsp:學習

java觀察者模式

簡單地說,觀察者模式定義了乙個一對多的依賴關係,讓乙個或多個觀察者物件監察乙個主題物件。這樣乙個主題物件在狀態上的變化能夠通知所有的依賴於此物件的那些觀察者物件,使這些觀察者物件能夠自動更新。不多說了,直接給出實現 例1 對某個事件只有乙個訂閱者的例子 author yongxing.shao pu...

觀察者模式java

根據headfirst做出實現如下 主題,觀察者,顯示三個介面。public inte ce observer public inte ce subject public inte ce displayelement 氣象資料實現主題介面 public class weather implement...

JAVA 觀察者模式

實現觀察者模式涉及到乙個類和乙個介面 observable類和observer介面 被觀察的類需要繼承observable類,在該類中的常用方法有 public voidaddobserver observer o 增加乙個觀察者觀察自己 public voiddeleteobserver obse...