關於 eventbus 在開發中經常會選擇使用它來進行模組間通訊、解耦。平常使用這個庫只是很淺顯的操作三部曲,register,post,unregister。
eventbus是乙個開源庫,它利用發布/訂閱者模式來對專案進行解耦。它可以利用很少的**,來實現多元件間通訊。以往的通訊我們很容易會想到,handler機制,廣播,但是這兩者中出現的問題也就顯而易見,**量多,元件間容易產生耦合引用。對eventbus初步了解的話我們先看一下下面這張圖:
通過這張圖,我們可以很容易的看到eventbus是如何進行工作的,publisher(發布者)通過post()方法,把event事件發布出去,subscriber(訂閱者)在onevent()方法中接收事件。使用它我們要了解他的哪些優點?具體可以看一下:
初步了解已經完成!
eventbus的準別工作,我們可以自己去查一下,在這裡我就不記錄了。要提一下的是
(1)一定要混淆,不然會出現在debug版本中沒問題,但是到了release版本中會出現收不到訊息的現象。!!
(2)一定要在註冊使用完之後,登出掉。不然會出現問題。
還有一些,eventbus的註解@subscribe是eventbus自定義的一種註解,他可接收三個引數。threadmode、boolean sticky、int priority。我在使用時主要關注的是threadmode這一點,是用來決定onreceivemsg將在哪種執行緒環境下被呼叫。evenbus一共有5種thread mode。而預設的模式是psosting模式,他表示post事件是什麼執行緒,onreceivemsg接收事件方法就在同樣的執行緒環境中執行**。其他模式可以看一下:
進一步了解Makefile
mkdir p add src 一層一層建立目錄。touch add makefile 建立 makefile include 目錄中存放標頭檔案。scripts 存放指令碼檔案。存放方式 按照核心管理原始碼來管理。為什麼學習makefile?編譯大型專案 讀懂別人的開源 找到程式入口 看專案的順序...
進一步了解Spring Cloud
spring cloud是 系列框架的有序集合。它利 spring boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現註冊 配置中 訊息匯流排 負載均衡 斷路器 資料監控等,都可以 spring boot的開發 格做到 鍵啟動和部署。spring cloud並沒有重複製造輪 它只是...
進一步了解pip
在python中,安裝第三方模組,是通過包管理工具pip完成的。當我們試圖載入乙個模組時,python會在指定的路徑下搜尋對應的.py檔案,如果找不到,就會報錯。預設情況下,python直譯器會搜尋當前目錄 所有已安裝的內建模組和第三方模組,搜尋路徑存放在sys模組的path變數中 import s...