观察者设计模式

  观察者设计模式是一个非常有意思的设计模式,可以理解为一触即发。

  如果要想实现观察者设计模式需要以下的两个类:

    观察者:java.util.Observer;

    被观察者:java.util.Observable

范例:实现观察者

 1 package cn.Tony.demo;
 2 
 3 import java.util.Observable;
 4 import java.util.Observer;
 5 
 6 class Person implements Observer{//这些是所有的观察者
 7     @Override
 8     public void update(Observable o, Object arg) {//一旦你关注的事情发生了变化
 9         if(o instanceof House) {
10             if(arg instanceof Double) {
11                 System.out.println("【人们关注房子】房价上涨,新价格:"+arg);
12             }
13         }
14     }
15 }
16 class House extends Observable{//被观察者
17     private double price;
18     public House(double price) {
19         this.price=price;
20     }
21     public void setPrice(double price) {
22         if(price>this.price) {//价格上涨了
23             super.setChanged();//现在关注的内容改变
24             super.notifyObservers(price);//唤醒所有的观察者
25         }
26         this.price=price;
27     }
28 }
29 public class TestDemo {
30     public static void main(String[] args) throws Exception {
31         Person pA=new Person();
32         Person pB=new Person();
33         Person pC=new Person();
34         House house=new House(80000.00);
35         house.addObserver(pA);//必须手工设置观察者
36         house.addObserver(pB);//必须手工设置观察者
37         house.addObserver(pC);//必须手工设置观察者
38         house.setPrice(150000.00);
39     }
40 }

  这种设计模式在现在的开发中已经意义不大了

  理解一种设计模式。观察者是一个设计模式。