91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android中實現一個觀察者與被觀察者

發布時間:2021-04-12 16:04:16 來源:億速云 閱讀:209 作者:Leah 欄目:移動開發

本篇文章給大家分享的是有關怎么在Android中實現一個觀察者與被觀察者,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

概述:

觀察者模式(又被稱為發布-訂閱(Publish/Subscribe)模式,屬于行為型模式的一種,它定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態變化時,會通知所有的觀察者對象,使他們能夠自動更新自己。

觀察者模式結構圖

怎么在Android中實現一個觀察者與被觀察者

Subject:抽象主題(抽象被觀察者),抽象主題角色把所有觀察者對象保存在一個集合里,每個主題都可以有任意數量的觀察者,抽象主題提供一個接口,可以增加和刪除觀察者對象。
ConcreteSubject:具體主題(具體被觀察者),該角色將有關狀態存入具體觀察者對象,在具體主題的內部狀態發生改變時,給所有注冊過的觀察者發送通知。
Observer:抽象觀察者,是觀察者者的抽象類,它定義了一個更新接口,使得在得到主題更改通知時更新自己。
ConcrereObserver:具體觀察者,是實現抽象觀察者定義的更新接口,以便在得到主題更改通知時更新自身的狀態。

實現方法

1、創建接口觀察者(Watcher.java):

package watch;
public interface Watcher {
  void update(String str);
}

2、創建接口被觀察者(Watched.java):

package watch;
public interface Watched {
  void adWatcherh(Watcher watcher);
  void removeWatcherh(Watcher watcher);
  void notifyAll(String str);
}

3、創建觀察者實現接口(ConWatcher.java):

package watch;
public class ConWatcher implements Watcher {
  @Override
  public void update(String str) {
    System.out.println(str);
  }
}

4、創建被觀察者實現接口(ConWatched.java):

package watch;
import java.util.ArrayList;
import java.util.List;
public class ConWatched implements Watched {
  List<Watcher> list = new ArrayList<Watcher>();
  @Override
  public void adWatcherh(Watcher watcher) {
    list.add(watcher);
  }
  @Override
  public void removeWatcherh(Watcher watcher) {
    list.remove(watcher);
  }
  @Override
  public void notifyAll(String str) {
    for (Watcher watcher : list){
      watcher.update(str);
    }
  }
}

5、測試(WatchTest.java):

package watch;
public class WatchTest {
  public static void main(String[] args) throws Exception{
    ConWatched conWatched = new ConWatched();
    ConWatcher conWatcher1 = new ConWatcher();
    ConWatcher conWatcher2 = new ConWatcher();
    ConWatcher conWatcher3 = new ConWatcher();
    System.out.println("億速云測試結果:");
    conWatched.adWatcherh(conWatcher1);
    conWatched.adWatcherh(conWatcher2);
    conWatched.adWatcherh(conWatcher3);
    conWatched.notifyAll("I am coming");
  }
}

文件目錄結構:

怎么在Android中實現一個觀察者與被觀察者


以上就是怎么在Android中實現一個觀察者與被觀察者,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

集安市| 乡城县| 策勒县| 明溪县| 台江县| 若尔盖县| 赤壁市| 崇义县| 松江区| 宝山区| 山丹县| 武冈市| 孙吴县| 平利县| 马鞍山市| 乌苏市| 平顶山市| 汉川市| 依安县| 洪湖市| 正定县| 尤溪县| 赤水市| 横山县| 库伦旗| 吉安市| 庆云县| 新泰市| 新野县| 宁德市| 新巴尔虎右旗| 萨嘎县| 精河县| 宝鸡市| 青川县| 乌苏市| 井研县| 东海县| 剑川县| 钟祥市| 馆陶县|