public interface Observer { public void update(Product pro); }
public class MailObserver implements Observer{ public void update(Product pro) { System.out.println("向所有会员发送邮件"+pro.getName()+"价格已经变为"+pro.getPrice()); } }
public class ShortMessageObserver implements Observer{ public void update(Product pro){ System.out.println("向所有会员发送短消息"+pro.getName()+"价格已经变为"+pro.getPrice()); } }
public class Product { private double price; private String name; private HashSet allObservers; public Product(String name, double price){ this.name=name; this.price=price; allObservers= new HashSet (); } //价格一变,给所有观察着发送信息 public void setPrice( double price){ this.price=price; for(Observer ob:allObservers){ ob.update( this); } } public void addObserver(Observer ob){ allObservers.add(ob); } public double getPrice() { return price; } public String getName() { return name; } }
public class Application { /** * @param args */ public static void main(String[] args) { Product pro=new Product("婴儿车",398.00); pro.addObserver(new MailObserver()); pro.addObserver(new ShortMessageObserver()); pro.setPrice(368.00); } }