【EventBus】发布-订阅模式 ( 使用代码实现发布-订阅模式 )
生活随笔
收集整理的這篇文章主要介紹了
【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、調度中心
調度中心提供如下功能 :
- 訂閱者隊列 : 維護一個訂閱者集合 , 收到消息后 , 需要將數據發送給各個訂閱者 ;
- 注冊訂閱者 : 可以添加訂閱者到集合中 ;
- 刪除訂閱者 : 將訂閱者從集合中刪除 ;
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】发布-订阅模式 ( 使用代码实现发布-订阅模式 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【EventBus】发布-订阅模式 (
- 下一篇: 【开发环境】Windows 系统中使用