-
结构。查看全部
-
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
提交
取消