-
結構。查看全部
-
haha查看全部
-
hdhevd_查看全部
-
observer查看全部
-
jdk觀察者模式優點查看全部
-
jdk觀察者模式優點查看全部
-
拉模型查看全部
-
推模型查看全部
-
觀察者模式結構查看全部
-
觀察者流程圖查看全部
-
課程大綱查看全部
-
觀察者模式應用場景查看全部
-
觀察者模式的應用場景查看全部
-
Jdk方式實現 觀察者模式 測試 public static void main(String[] args) { WeatherSubject subject=new WeatherSubject(); //創建目標類 subject.addObserver(new WeatherObserver("觀察者A")); //增添觀察者 subject.addObserver(new WeatherObserver("觀察者B")); //增添觀察者,推送的順序和添加觀察者的順序貌似無關 subject.setWeatherState("下雨"); } 輸出 觀察者B收到通知,推送值為參數,天氣為下雨 觀察者A收到通知,推送值為參數,天氣為下雨查看全部
-
Jdk方式實現 觀察者模式 目標類代碼 /** * 目標類,繼承Observable類,使其成為 可觀察的目標類 */ public class WeatherSubject extends Observable { private String weatherState; public String getWeatherState() { return weatherState; } public void setWeatherState(String weatherState) { this.weatherState = weatherState; this.setChanged(); //通知之前必須要調用該方法,否則無法通知 this.notifyObservers("參數");//通知所有的觀察者。不管這里傳不傳參數,都會傳給觀察者Observable引用。 } } 觀察者代碼 /** * 觀察者類,實現Observer接口,成為觀察者 */ public class WeatherObserver implements Observer { private String name;//隨便定義一個變量,作為觀察者的名字 public WeatherObserver(String name) { this.name=name; } /** * Observer接口中的方法,Observable目標類會回調該方法 * @param observable 目標類的引用,需要進行強制類型轉換 //不管通知傳不傳參數,都會傳給觀察者Observable引用。 * @param object 目標類主動傳來的對象。 如果目標類的通知沒傳參數,則object為空 */ @Override public void update(Observable observable, Object object) { System.out.println(name+"收到通知,推送值為"+object+",天氣為"+((WeatherSubject)observable).getWeatherState()); } }查看全部
舉報
0/150
提交
取消