一.架構(gòu)方面(android)
早期的架構(gòu)
1.Android入門要求不高晰房,所看到的大部分app都是activity 或者fragment中加入view跟業(yè)務(wù)邏輯娜庇,項(xiàng)目中會(huì)抽出輔助模塊(網(wǎng)絡(luò)模塊寺晌,存儲模塊等等), 各個(gè)業(yè)務(wù)模塊中用事件通知或者廣播。(Android framework不會(huì)強(qiáng)制要求我們?nèi)プ袷匾恍┰瓌t:單一職責(zé),依賴倒置原則等)综膀,這樣會(huì)導(dǎo)致整個(gè)項(xiàng)目耦合緊密,難以閱讀的數(shù)據(jù)流傳遞和混亂的回調(diào)邏輯局齿,不利于項(xiàng)目的維護(hù)及后期業(yè)務(wù)的發(fā)展剧劝。
2.萬能的父類
a. 維護(hù)生命周期
b. Intent跳轉(zhuǎn)
c. 數(shù)據(jù)獲取(網(wǎng)絡(luò)以及本地等)
d. 線程切換
e. 通用業(yè)務(wù)邏輯
......
3.輔助的業(yè)務(wù)類
為了減輕萬能父類的壓力,把一些業(yè)務(wù)邏輯抽出來做成輔助類抓歼,但隨著業(yè)務(wù)的不斷擴(kuò)大讥此,輔助類也臃腫,然后繼續(xù)拆分谣妻,測試成本及維護(hù)成本還在繼續(xù)加大萄喳。
早期架構(gòu)總結(jié):盡量避免做大而全的類,應(yīng)該投入精力去實(shí)現(xiàn)易于測試易于維護(hù)的低耦合的類,最好不要讓業(yè)務(wù)邏輯進(jìn)入純粹的Android世界拌禾。
簡潔架構(gòu)設(shè)計(jì)(Easy Clean architecture)
一個(gè)架構(gòu)的清晰與整潔離不開下面三個(gè)原則:
1).分層原則
2).依賴原則
3).抽象原則
分層原則
按上圖可以分為四層
1: Framework & Drivers: 對應(yīng)的就是Android的框架層取胎,這個(gè)地方應(yīng)該是Android framework的具體實(shí)現(xiàn),它應(yīng)該包括所有Android的東西湃窍,也就是說這里的代碼應(yīng)該是解決Android問題的闻蛀,是與平臺特性相關(guān)的,是具體的實(shí)現(xiàn)細(xì)節(jié)您市,如觉痛,Activity的跳轉(zhuǎn),創(chuàng)建并加載Fragment茵休,處理Intent或者開啟Service等
2:Interface Adapters: 適配層薪棒,用來擔(dān)任Android框架層與業(yè)務(wù)邏輯層的橋梁手蝎,可以通過dagger2依賴注入,降低對內(nèi)層和外層的耦合
3:Use Cases:業(yè)務(wù)邏輯層俐芯,不包含Android代碼棵介,是獨(dú)立性的,便于開發(fā)吧史,維護(hù)及測試
4:Entities:實(shí)體
依賴原則
依賴規(guī)則與箭頭方向保持一致邮辽,也就是說外層知道內(nèi)層的存在,而內(nèi)層不知道外層的存在贸营,