1类图

设计模式之观察者模式_java

 

2java示例


public class Test {

public static void main(String[] args) {
Plane plane=new Plane("J20 a001");
Observer observer=new Radar();
plane.addObserver(observer);
plane.setDistance(9000);

}

}
public class Plane extends Observable {
private String name;
public Plane(String name){
this.name=name;
}


public String getName() {
return name;
}


public void setDistance(int distance){
if(distance<10000){
this.setChanged();
this.notifyObservers();
}
}
}



public class Radar implements Observer {

@Override
public void update(Observable o, Object arg) {
Plane plane=(Plane)o;
System.out.println(plane.getName()+" has been discovered");
}

}