學(xué)習(xí) CleanArchitecture 心得體會

最近 Android-CleanArchitecture 鬧得是沸沸揚揚砍的,然而筆者也不甘寂寞,一直在研究這個東西汽纠,也fork過一些關(guān)于cleanArchitecture開源的項目進行了學(xué)習(xí):

比如 android10 https://github.com/android10/Android-CleanArchitecture
比如 googlesample https://github.com/googlesamples/android-architecture/tree/todo-mvp-clean/
比如 dmilicic https://github.com/dmilicic/Android-Clean-Boilerplate

關(guān)于探討CleanArchitecture架構(gòu)方面的文章也很多,但是潜慎,究其源頭帜乞,無非都是出自uncle-bob 叔叔的這篇 https://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html

至于大家為什么傾向于cleanArchitecture司抱,那一定是有他的道理的。就好比挖函,對比傳統(tǒng)開發(fā)的MVC開發(fā)方式状植,你會得到以下好處。

代碼復(fù)用性更高
更易于測試
耦合度更小

下面這幅圖怨喘,是googlesample下面的了津畸。


googlesamples

下面這幅圖,是uncle-bob畫的了必怜。


uncle-bob

細心的你已經(jīng)發(fā)現(xiàn)了肉拓,這兩個圖其實是一個意思。從大的方向上看梳庆,都是三層結(jié)構(gòu)暖途。

DataLayer

最底層,完全不知道有DomainLayer膏执,PresentationLayer的存在驻售,聽到這里,你還在懷疑這個架構(gòu)的可測試性耦合度低嗎更米?那么DataLayer的主要職責(zé)是什么欺栗?
1、從網(wǎng)絡(luò)獲取數(shù)據(jù)征峦,向網(wǎng)絡(luò)提交數(shù)據(jù)迟几,總之就是和網(wǎng)絡(luò)打交道。
2栏笆、從本地DB类腮,shareprefence等等,內(nèi)存等蛉加,總之就是本地獲取數(shù)據(jù)蚜枢,緩存數(shù)據(jù),總之就是和本地數(shù)據(jù)打交道的针饥。
這也就是你為什么看到很多Android-CleanArchitecture 的 package里面有一個local ,和一個remote了祟偷,然而是否有必要分的這么細,個人習(xí)慣啊~打厘,不強求。反正這一層如果出現(xiàn)了 anroid.os***,我就更你拼了贺辰,對不起户盯,你已經(jīng)偏離了Android-CleanArchitecture了嵌施。

DomainLayer

中間層,他完全不知道有一個PresentationLayer存在莽鸭,他只知道吗伤,有DataLayer,他可以基于這些數(shù)據(jù)硫眨,建立很多玩法足淆,比如去網(wǎng)絡(luò)拿一堆名人回來,然后將這些數(shù)據(jù)緩存到本地礁阁,在比如巧号,他寫了一篇黑某明星的文章,將文字發(fā)布到網(wǎng)上等等姥闭。因此他的主要職責(zé)是:
1丹鸿、控制DataLayer對數(shù)據(jù)做增刪改查,沒錯棚品,就這么簡單靠欢,然后就沒有然后了。
2铜跑、真的沒有了门怪,不騙你,但是這一層如果出現(xiàn)了 anroid.os***,我就更你拼了锅纺,對不起掷空,你已經(jīng)偏離了Android-CleanArchitecture了。

PresentationLayer

最上層伞广,他知道DomainLayer拣帽,有人要問了,那么他知道DataLayer嚼锄,回答减拭,他知道你妹~ 他累不累啊,要知道這么多区丑?
因此拧粪,它只知道DomainLayer,那么他的職責(zé)有哪些沧侥?
1可霎、通知DomainLayer有活干了,根據(jù)DomainLayer反饋變化界面
2宴杀、通知DomainLayer有活干了癣朗,根據(jù)DomainLayer反饋變化界面
3、通知DomainLayer有活干了旺罢,根據(jù)DomainLayer反饋變化界面
這年頭旷余,重要的時間一定要說三遍绢记,而且,就是這么任性~~

分析了每層之后正卧,我們發(fā)現(xiàn)蠢熄,依賴的關(guān)系是 PresentationLayer --> DomainLayer --> DataLayer 的。
DomainLayer --> DataLayer 不知道有android平臺的存在炉旷。
因此签孔,只要我們圍繞這個原則去做架構(gòu),那么就稱的上是Android-CleanArchitecture窘行。

這里是我根據(jù)Android-CleanArchitecture思想饥追,實現(xiàn)了一個,里面附帶了demo抽高,https://github.com/bravekingzhang/CleanArch

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末判耕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子翘骂,更是在濱河造成了極大的恐慌壁熄,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碳竟,死亡現(xiàn)場離奇詭異草丧,居然都是意外死亡,警方通過查閱死者的電腦和手機莹桅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門昌执,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诈泼,你說我怎么就攤上這事懂拾。” “怎么了铐达?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵岖赋,是天一觀的道長。 經(jīng)常有香客問我瓮孙,道長唐断,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任杭抠,我火速辦了婚禮脸甘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘偏灿。我一直安慰自己丹诀,他們只是感情好,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忿墅,像睡著了一般扁藕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疚脐,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音邢疙,去河邊找鬼棍弄。 笑死,一個胖子當著我的面吹牛疟游,可吹牛的內(nèi)容都是我干的呼畸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼颁虐,長吁一口氣:“原來是場噩夢啊……” “哼蛮原!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起另绩,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤儒陨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后笋籽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹦漠,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年车海,在試婚紗的時候發(fā)現(xiàn)自己被綠了笛园。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡侍芝,死狀恐怖研铆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情州叠,我是刑警寧澤棵红,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站留量,受9級特大地震影響窄赋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜楼熄,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一忆绰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧可岂,春花似錦错敢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纸淮。三九已至,卻和暖如春亚享,著一層夾襖步出監(jiān)牢的瞬間咽块,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工欺税, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侈沪,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓晚凿,卻偏偏與公主長得像亭罪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子歼秽,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容