日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【EventBus】发布-订阅模式 ( 使用代码实现发布-订阅模式 )

發布時間:2025/6/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【EventBus】发布-订阅模式 ( 使用代码实现发布-订阅模式 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、發布-訂閱模式
  • 二、代碼實現發布-訂閱模式
    • 1、訂閱者接口
    • 2、訂閱者實現類
    • 3、發布者
    • 4、調度中心
    • 5、客戶端





一、發布-訂閱模式



發布訂閱模式 :

  • 發布者 Publisher : 狀態改變時 , 向 消息中心 發送事件 ;
  • 訂閱者 Subscriber :消息中心 訂閱自己關心的事件 ;
  • 消息中心 : 負責維護一個 消息隊列 , 根據 消息類型 將 消息 轉發給 對應的 訂閱者 ;

下面按照該結構實現一個簡單的 發布-訂閱模式 ;





二、代碼實現發布-訂閱模式




1、訂閱者接口


/*** 訂閱者*/ public interface Subscriber {/*** 處理事件* @param msg 接收到的事件*/void onEvent(String msg); }

2、訂閱者實現類


訂閱者實現類 1 :

public class Subscriber1 implements Subscriber {@Overridepublic void onEvent(String msg) {System.out.println("Subscriber1 訂閱者收到消息 " + msg);} }

訂閱者實現類 2 :

public class Subscriber2 implements Subscriber {@Overridepublic void onEvent(String msg) {System.out.println("Subscriber2 訂閱者收到消息 " + msg);} }

3、發布者


/*** 發布者*/ public class Publisher {/*** 發布消息* @param msg 要發布的消息*/public void post(String msg) {Dispatcher.getInstance().post(msg);} }

4、調度中心


調度中心提供如下功能 :

  • 訂閱者隊列 : 維護一個訂閱者集合 , 收到消息后 , 需要將數據發送給各個訂閱者 ;
  • 注冊訂閱者 : 可以添加訂閱者到集合中 ;
  • 刪除訂閱者 : 將訂閱者從集合中刪除 ;
import java.util.ArrayList; import java.util.List;/*** 調度中心*/ public class Dispatcher {/*** 維護訂閱者集合*/private List<Subscriber> subscribers;/*** 單例模式實例對象*/private static Dispatcher instance;private Dispatcher() {this.subscribers = new ArrayList<>();}public static Dispatcher getInstance() {if (instance == null) {instance = new Dispatcher();}return instance;}/*** 注冊訂閱者* @param subscriber*/public void register(Subscriber subscriber) {subscribers.add(subscriber);}/*** 取消訂閱者* @param subscriber*/public void unregister(Subscriber subscriber) {subscribers.remove(subscriber);}/*** 發送消息* 將接收到的事件發送給訂閱者* @param msg*/public void post(String msg) {for (int i = 0; i < subscribers.size(); i++) {subscribers.get(i).onEvent(msg);}} }

5、客戶端


public class Client {public static void main(String[] args) {// 創建訂閱者Subscriber1 subscriber1 = new Subscriber1();Subscriber2 subscriber2 = new Subscriber2();// 注冊訂閱者Dispatcher.getInstance().register(subscriber1);Dispatcher.getInstance().register(subscriber2);// 創建發布者Publisher publisher = new Publisher();// 發布消息publisher.post("Hello");} }

執行結果 :

總結

以上是生活随笔為你收集整理的【EventBus】发布-订阅模式 ( 使用代码实现发布-订阅模式 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本xxxxwww | 极品91尤物被啪到呻吟喷水 | 成人久久久久久久 | 97国产一区 | 亚洲精品综合在线观看 | 中文字幕高清在线播放 | 日韩在线你懂的 | 欧美亚洲综合在线 | 国产黄色精品视频 | 天美麻花果冻视频大全英文版 | 激情小说中文字幕 | 久久中文在线 | 国产精品久久久久久亚洲 | 亚洲精品乱码久久久久久国产主播 | 91青草视频 | 性久久久久久久久 | 操日韩| 99人妻碰碰碰久久久久禁片 | 欧美乱妇日本无乱码特黄大片 | 久久夜色精品国产欧美乱极品 | 国产又黄又大又粗的视频 | 欧美日日骚 | 8x8x国产精品一区二区 | 岛国片在线播放 | 99福利| 亚洲一区二区国产精品 | 精品熟妇一区二区三区 | 成人免费一区二区三区 | 少妇被狂c下部羞羞漫画 | 一级黄色免费看 | 亚洲黄色一级大片 | 福利视频一区二区三区 | 欧美在线二区 | 在线免费av播放 | 秋霞自拍| 狠狠鲁狠狠干 | 最近中文字幕免费mv视频7 | 亚洲风情亚aⅴ在线发布 | 国产精品无套 | 日韩激情啪啪 | 美女啪啪一区二区 | 国产视频一区二区三区四区五区 | 男受被做哭激烈娇喘gv视频 | 都市激情男人天堂 | 欧美性生活一区二区三区 | 欧美14sex性hd摘花 | 国语对白真实视频播放 | 丁香激情五月 | 久久久国产成人 | 日韩视频a | 黄色激情视频在线观看 | 亚洲视频在线观看网址 | www.色哟哟| 日韩岛国片| 婷婷色在线观看 | 在线观看欧美国产 | 亚洲福利在线视频 | 欧美激情 亚洲 | 久久久久久网址 | 一级特黄性色生活片 | 天天想你免费观看完整版高清电影 | 国产91一区二区三区 | 亚欧在线观看 | 真人毛片97级无遮挡精品 | 一区在线视频 | 欧美日韩不卡一区二区三区 | 久久久无码一区二区三区 | 怡春院一区二区 | 魔女鞋交玉足榨精调教 | 福利电影一区二区三区 | 亚洲一二三不卡 | 91视频播放器 | 毛片随便看 | 免费视频网站在线观看入口 | 亚洲不卡在线观看 | 久久午夜电影网 | 久久午夜精品人妻一区二区三区 | 中文字幕中文字幕 | 青草青草久热 | 亚洲欧美日韩一区在线观看 | 久久青青操 | 精品少妇人妻av一区二区三区 | 国产成人a人亚洲精品无码 在线aa | 日韩av中文在线 | av在线毛片 | 国产精品日韩一区二区 | 国产精品视频一二区 | 国产丝袜在线视频 | 女人高潮被爽到呻吟在线观看 | 一级久久久久久久 | 黄色网址链接 | 奇米色综合 | 国产精品99久久久久 | 欧美xxxx8888| 青青草社区 | 丝袜+亚洲+另类+欧美+变态 | 91在线中文 | 亚洲色图视频在线观看 | 久久久久久久久综合 |