網(wǎng)絡(luò)層和持久層 業(yè)務(wù)層隨筆

Controller其實是業(yè)務(wù)層,業(yè)務(wù)層內(nèi)有數(shù)據(jù)展示和業(yè)務(wù)邏輯

網(wǎng)絡(luò)層和持久層你統(tǒng)一為數(shù)據(jù)層沒有問題。但是建議不要這么做,因為持久層除了數(shù)據(jù)存儲,還會有一個弱業(yè)務(wù)Mananger,是DataCenter。網(wǎng)絡(luò)層除了API調(diào)用,也會有一個弱業(yè)務(wù)Manager,也就是APIMananger。建議把持久層和網(wǎng)絡(luò)層這兩者分開,并列存在就行了。

之所以Controller必須使用Manager(APIManager或DataCenter)去訪問對應(yīng)數(shù)據(jù),主要是為了強弱業(yè)務(wù)隔離,而且網(wǎng)絡(luò)層和持久層只提供了這個操作入口給Controller,并沒有提供其他亂七八糟的入口,這也是為了提高代碼的可維護性。所以Controller只能使用Manager去操作時這個原因,跟跨層訪問無關(guān)。

Manager這個封裝很有用,Manager做的事情不止是單單的調(diào)用。網(wǎng)絡(luò)層APIManager提供了參數(shù)生命周期管理,AOP攔截器,回調(diào)預(yù)處理,API調(diào)用信息管理,緩存管理,reformer機制的實現(xiàn)等等一系列功能,這一系列事情都不是應(yīng)該丟到Controller去做的

由于iOS場景下,Controller其實是業(yè)務(wù)層,業(yè)務(wù)層里面有數(shù)據(jù)展示和業(yè)務(wù)邏輯,所以數(shù)據(jù)展示不能成為單獨的一個層,因為需要業(yè)務(wù)層去調(diào)度,也就是Controller去調(diào)度。

最后編輯于
?著作權(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)容