【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 }

 

【测试】

posted @ 2018-05-03 09:35  OzTaking  阅读(130)  评论(0)    收藏  举报