久久精品国产99国产精品,农村大炕弄老女人,人马配速90分钟,香蕉成人伊视频在线观看

Java觀察者模式

Java觀察者模式定義對象間一對多的依賴關系,當一個對象(被觀察者)的狀態發生改變時,所有依賴于它的對象(觀察者)都得到通知并自動更新。JDK中提供的觀察者模式的實現是由接口和java.util.Ob

Java觀察者模式定義對象間一對多的依賴關系,當一個對象(被觀察者)的狀態發生改變時,所有依賴于它的對象(觀察者)都得到通知并自動更新。JDK中提供的觀察者模式的實現是由接口和java.util.Observable類組成的,其中Observer代表觀察者,而Observable代表被觀察者。

Observable類

Observable類是由被觀察者(可有一個或多個觀察者)所繼承。調用setChanged方法,使得hasChanged方法返回值為true,則再次調用notifyObservers方法會觸發觀察者的update方法來通知觀察者該實例發生變化。

Observer接口

Observer接口中只有一個未實現的update抽象方法,實現該接口的對象稱為觀察者,該對象要實現update方法。注冊了該對象(觀察者)的對象(被觀察者)實例在調用notifyObservers方法之后,會自動調用觀察者中的update方法。

被觀察者

被觀察者代表熱水器,繼承Observable類。它具有getTemperature和setTemperature方法來獲取和設置水溫。boilWater方法用于燒水,當水溫達到100度時,調用setChanged方法將hasChanged方法返回值設為true,并調用notifyObservers方法通知觀察者。

觀察者

觀察者I114gBoxDisplayObservable代表顯示器,繼承Observable類并實現Observer接口。它具有getStatus和setStatus方法用于獲取和設置水的狀態。displayTemperature方法用于顯示當前水溫,當水溫達到100度時會將狀態設為熱水,并調用setChanged方法將hasChanged方法返回值設為true,并調用notifyObservers方法通知觀察者。

觀察者

觀察者I114gBoxAlarmObserver代表報警器,實現Observer接口。它具有update方法用于在被觀察者狀態發生變化時觸發報警操作。

測試類

測試類用于運行觀察者模式的示例。在main方法中創建了一個熱水器對象、一個顯示器對象和一個報警器對象。然后通過調用addObserver方法將顯示器設置為熱水器的觀察者,將報警器設置為顯示器的觀察者。最后調用熱水器的boilWater方法來模擬燒水過程。

運行測試類,結果如下:

標簽:
主站蜘蛛池模板: 泰安市| 宿州市| 东城区| 兴国县| 慈溪市| 嘉义市| 合山市| 沾益县| 栾川县| 北安市| 墨江| 阿坝县| 安义县| 山丹县| 车险| 全南县| 广安市| 杭锦后旗| 桑植县| 罗甸县| 安平县| 财经| 乌苏市| 湟源县| 淮滨县| 大化| 镇雄县| 搜索| 保康县| 英吉沙县| 桐城市| 都兰县| 张家界市| 井冈山市| 周至县| 井研县| 阿拉尔市| 错那县| 滕州市| 新建县| 和硕县|