应用场景:想知道一个对象的变化状态,就给它安插一个监控,俗称观察者
实现观察者模式,需要两个关键类
Observable:表示需要被观察的对象
Observer:观察者,真正去监控的对象
public class ObserverDemo {
/**
* 待观察的类
*/
static class Product extends Observable {
private Double price ;
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
this.setChanged();
this.notifyObservers(price);
}
}
/**
* 创建观察者
*/
static class ProductObserver implements Observer{
@Override
public void update(Observable o, Object arg) {
System.out.println("目标对象变化为=" + arg);
}
}
public static void main(String[] args) {
Product product = new Product() ;
ProductObserver observer = new ProductObserver() ;
//加入观察者
product.addObserver(observer);
//变化后,观察者会感知到并处理
product.setPrice(1D);
product.setPrice(2D);
}
}