【0009】【Java设计模式】【观察者模式】
1.观察者模式的认识



【说明】此处主要讲解推送的过程;

2.观察者模式的简单类图

3.观察者模式的实现
【主体对象的定义】注册/注销观察者,更新状态;

【主题管理者的子类】

【观察的接口】

【观察者的实现类】

【调用】主题的状态发生了改变,观察者接收到的同样也发生了改变;



4.使用java本身类库实现观察者模式

【主题类】继承java类库本身的类;已经定义好了需要的方法;

1 package com.example.administrator.demo; 2 3 import java.util.Observable; 4 5 public class Subject extends Observable { 6 public int state; 7 8 public int getState() { 9 return state; 10 } 11 12 ////只有在setState被调用后,notifyObservers()才会去调用update(),否则什么都不干。 13 public void setState(int state) { 14 this.state = state; 15 setChanged(); 16 notifyObservers(state); 17 } 18 19 20 }
【观察者】

1 package com.example.administrator.demo; 2 3 import java.util.Observable; 4 import java.util.Observer; 5 6 7 public class ObserverA implements Observer { 8 9 private int myState; 10 11 12 public int getMyState() { 13 return myState; 14 } 15 16 17 public void setMyState(int myState) { 18 this.myState = myState; 19 } 20 21 @Override 22 public void update(Observable o, Object arg) { 23 myState = ((Subject) o).getState(); 24 25 } 26 27 }
【测试】


浙公网安备 33010602011771号