1、观察对象继承Observable类
import java.util.Observable; public class Target extends Observable { private double height = 20; public double getHeight() { return height; } public void setHeight(double height) { this.height = height; //将观察对象标记为已发生改变 setChanged(); //通知其所有观察者,对象发生了改变 notifyObservers(); } }
2、观察者实现Observer接口
import java.util.Observable; import java.util.Observer; public class Customer implements Observer { public Customer(Observable o) { //将观察者添加到该对象的观察者集合中 o.addObserver(this); } private double height; public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } /* *实现接口Observer的update方法 *当观察对象发生改变时,调用该方法 */ @Override public void update(Observable o, Object arg) { Target t = (Target) o; double h = t.getHeight(); setHeight(h); } }
3、测试类
public class Test01 { public static void main(String[] args) { Target target=new Target(); Customer customer=new Customer(target); target.setHeight(30); System.out.println(customer.getHeight()); } }