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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BeeHive模块注册

發布時間:2025/7/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BeeHive模块注册 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

BeeHive是阿里巴巴開源的一個模塊化框架,是app模塊化編程的一種實現方案。都知道項目一旦大了起來單單的mvc架構就很難支撐了,由此我們需要將代碼模塊化處理,對業務模塊進行業務分離,達到內聚、分離的效果。beehive也是由此而生,雖還不夠完善,但是模塊化思想還是值得學習總結的。

BeeHive框架主體包含兩部分:(1)Modules的管理(2)Protocol的管理

先總結下BeeHive是怎么對模塊進行拆分與管理的。

首先是進行模塊注冊,在BeeHive中是通過BHModuleManager來管理各個模塊的。BHModuleManager中只會管理已經被注冊過的模塊。注冊方式有三種:

(1)通過BeeHiveMod(name)宏

大概意思就是我們需要指定一個特殊的段,來存放我們想要的數據。這里我們就把數據存在保存初始化過的全局靜態變量和局部靜態變量的data數據段里面的"BeehiveMods"段中。

有存自然就有取,取的代碼在BHAnnotation中管理著

這里的sectionName其實就是我們定義BeeHiveDATA時所傳的sectname,返回的configs數組包含著我們所有通過BeeHiveMod宏注冊的class名字符串數組。拿到我們注冊了的這個數組要做什么呢

實際上只是遍歷了一下然后就把這個數組拿給BHModuleManager去處理了,這里有些疑惑,不知道是不是因為版本更新了的緣故,mods在現在的demo里已經不是單例了,還不確定這樣改的意義何在會不會有什么影響。

接下來就是BHModuleManager里面的事情了,也是核心處理的地方:

一些需要說明已經在上述代碼里面添加了注釋。BHModules是一個NSMutableArray,里面存的都是一個個的字典,字典里面有兩個Key,一個是@"moduleLevel",另一個是@"moduleClass"。存儲已經注冊的Module的時候都要判斷Level。還有一點需要說明的,所有需要注冊的Module必須遵循BHModuleProtocol協議,否則不能被存儲。Level具體有什么用后面再說。

(2)加載plist文件

實際上這里就是將我們注冊的地方寫到plist文件中,解析一下plist文件將dictionary添加到BHModules中,與上面大相徑庭。

(3)使用Load方法注冊

第三種方法就是在類中重寫load方法給當前類進行注冊,這里也有個疑問,load方法只有在文件被引用的時候才會調用,如果module文件沒有被引用怎么注冊呢。

Load方法還可以用一個宏BH_EXPORT_MODULE來完成,其中isAsync傳yes表示module為異步加載。反之為同步加載。

到這里Modules已經全部注冊完成了。

?

轉載于:https://www.cnblogs.com/byxixiblogs/p/8024573.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的BeeHive模块注册的全部內容,希望文章能夠幫你解決所遇到的問題。

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