分類 毒解

一、關(guān)于標(biāo)題

本來是要寫成 獨(dú)解 的,后來我還是服從了輸入法的旨意。

接下來主要介紹一下分類在 網(wǎng)絡(luò)請求AppDelegate瘦身 中的用途。

二、網(wǎng)絡(luò)請求

網(wǎng)絡(luò)請求,使用分類?怎么使用?
在一個項(xiàng)目中的網(wǎng)絡(luò)請求一般套路都是一樣的,包括域名,加密,傳參方式等等。那么如何在套路一樣,又要在不同的模塊中共用呢?主要有這兩個方法:

  • 繼承
  • 分類
    看主題就應(yīng)該知道,我的重點(diǎn)是 分類。到現(xiàn)在我依然還沒有發(fā)現(xiàn) 繼承 能勝過 分類 的理由。

這部分可以參考這個代碼: NetWorkEngine

簡單的介紹一下這個 NetWorkEngine

NetWorkEngine

首先,有一個基本的網(wǎng)絡(luò)請求工具,就是 NetWorkEngine 這個 Class 。這個 Class 中就提供了一個很好的網(wǎng)絡(luò)請求封裝。那在項(xiàng)目開發(fā)中, 應(yīng)該如何去使用呢?
NetWorkEngine 這個 Class 一般是不用去動的,如何想要在項(xiàng)目中使用,那么先弄一個 分類 ,比如登錄模塊,那么就弄一個 NetWorkEngine+Login 分類,將所有與登錄有關(guān)的接口都放到這里。

總之,使用起來是很簡單的。大神可以通過我的代碼查看。NetWorkEngine

看了之后會不會覺得這樣使用 分類 顯得很高大上呢?

三、AppDelegate瘦身

就是 AppDelegate 文件的瘦身,避免此文件的臃腫導(dǎo)致難以維護(hù)。早上看了一個大神的文章 《AppDelegate瘦身指南》寫得很好,受益匪淺。我比較喜歡的兩個方法就是使用 FRDModuleManager 與 分類,其實(shí)之前我也想到了使用 分類 給AppDelegate瘦身,但是一直木有試過。我比較喜歡 FRDModuleManager 的原因是,所有的子模塊都準(zhǔn)守了 FRDModule 協(xié)議, 這個協(xié)議由準(zhǔn)守了 這兩個協(xié)議 UIApplicationDelegate, UNUserNotificationCenterDelegate, 所以在子模塊中,感覺就像是在 AppDelegate 中實(shí)現(xiàn)一樣,挺爽的。但是看到作者列舉的缺點(diǎn)之后,心里很不是一個滋味。
于是就想著把 FRDModuleManager 與 分類的優(yōu)點(diǎn)總結(jié)一下,可以這樣實(shí)現(xiàn):直接給 AppDelegate 通過模塊弄出分類。像這樣的:

AppDelegate

單獨(dú)給 AppDelegate 弄一個文件夾,是我多年的習(xí)慣,這次終于能用上場了。[默許一分鐘,僅僅一分鐘]。

看到上面的圖片,感覺怎么樣?我就舉了兩個例子而已:啟動調(diào)度(Scheduler)與 推送(Push)。按照上面介紹的,可以了么?感覺沒有體現(xiàn)出 FRDModuleManager 的有點(diǎn)啊, 是的,別急。 FRDModuleManager 的優(yōu)點(diǎn)就是使用起來感覺就像是在 AppDelegate 中一樣。這樣很好了, 直接把 AppDelegate 中的方法 Copy 過來就可以了。如果你這樣做了, 別說不認(rèn)識我?。。。?!在分類中不要重寫 當(dāng)前類的方法, 這是大忌啊。那么我們應(yīng)該怎么處理呢?很簡單,就三個字 加前綴。是不是有一種預(yù)想不到的感覺。分類加前綴,多么有沒的結(jié)合!具體是這樣的:

AppDelegate+Scheduler

然后在 AppDelegate 中這樣調(diào)用:

調(diào)用啟動器中的邏輯

這樣就輕松的將本來在 AppDelegate 中處理的邏輯轉(zhuǎn)移到 AppDelegate+Scheduler 中,已達(dá)到了給 AppDelegate 瘦身的目的。

四、說在后面的話

其實(shí)分類是一個很好的技術(shù)方案,使用好了,真的是一把利器。但是不要濫用!

參考文章:

AppDelegate瘦身指南
NewStart

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

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