观察者设计模式是一个非常有意思的设计模式,可以理解为一触即发。
如果要想实现观察者设计模式需要以下的两个类:
观察者: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 }
这种设计模式在现在的开发中已经意义不大了
理解一种设计模式。观察者是一个设计模式。