快速上手 iOS 組件化 CTMediator

iOS 組件化適用于偏大型的 App ,尤其是一個 App 由多人共同開發(fā)維護(hù)時。適用組件化,能夠解耦不同模塊,去除相互間的依賴,然后組員就能盡量將精力集中在個人的模塊,提高開發(fā)效率。試想一下,當(dāng)你坐下來開始今天的開發(fā)任務(wù)時,拉取別人的代碼就花費了半天時間,內(nèi)心一陣罵娘后,編程的心情恐怕就飛了。

CTMediator 是由天貓架構(gòu)師 CasaTaloyum 提出的解決方案。個人實驗后,感覺實現(xiàn)思路十分清晰,操作性非常強。下面就他的實現(xiàn)思想進(jìn)行一下解讀,方便后來者在操作中能夠抓住思考主線,減少不必要的折騰。

組件化的出發(fā)點就是解耦模塊,比如在使用 App 模塊 A 時,要求必須先登錄,這個時候就會調(diào)用登錄模塊 L 。這種場景下,A 模塊就依賴了 L 模塊。兩個模塊之間有時還需要傳遞參數(shù) params 。那么如何解耦呢?通過中間件 CTMediator 來實現(xiàn)。CTMediator 并不是簡簡單單的將 A / L 聯(lián)系起來,而是規(guī)定了 A 模塊和 L 模塊間實現(xiàn)通信的規(guī)則。如果將 A 和 L 比作兩個需要做買賣的 Boss,通常的理解是兩者找個跑腿的小弟 C 去傳話。這樣做由于 C 低下的地位會導(dǎo)致 A 和 L 按照自己的喜好發(fā)布命令,C 就很難讓二者做一錘子買賣。怎么辦呢?提高 C 的地位,讓 C 成為大 Boss ,自己獨自確定 A 和 L 買賣的方式。

CTMediator 就是這種實現(xiàn)方式。里面定義好了要進(jìn)行通信模塊的命名規(guī)則和實現(xiàn)規(guī)則。然后 A 和 L 模塊都必須按照這種方式來實現(xiàn),如果沒有實現(xiàn),CTMediator 中定義了默認(rèn)處理方式。而且 CTMediator 更進(jìn)一步,派出了小弟去需要通信的模塊去辦事。這樣 A 模塊和 L 模塊只要依賴 CTMediator 派往自己的小弟,不同的小弟依賴 CTMediator 就可以了。可以用下圖表示:

CTMediator

通過 Cocoapod 實現(xiàn)就是 「ModuleA」、「ACategory」、「ModuleB」、「BCategory」都是一個獨立的工程,相互之間通過私有庫的方式建立聯(lián)系。CTMediator 已經(jīng)貼心地將一些 podspec 文件的制作攜程了 shell 腳本,在 Mac 平臺下能夠快速完成。

思想是實踐的指引,有了整體的認(rèn)識,下面操作起來就會得心應(yīng)手,快快試試吧:在現(xiàn)有工程中實施基于CTMediator的組件化方案

喜歡和關(guān)注都是對我的鼓勵和支持~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容