最新接手的項(xiàng)目寫回了MVC模式,然后就是功能的完善和bug的修改,然后覺得還是自己還是得把mvp模式安排一下。
MVC模式
分別是Model(數(shù)據(jù))、View(視圖)、control(控制邏輯)
Model層這個(gè)就是咱們所說的bean實(shí)體類也就是保存的對(duì)象數(shù)據(jù),想要拿數(shù)據(jù)的時(shí)候就獲取一個(gè)對(duì)象然后點(diǎn)點(diǎn)點(diǎn)屬性就得到了
View層這個(gè)單詞代表的很好因?yàn)樵蹅冎灰梢钥吹降慕换ロ撁?,全部都是View這個(gè)類的子類,所以View就是UI界面給用戶觀看和接受用戶的輸入數(shù)據(jù)
Control層也就是像他的名字一樣屬于邏輯的控制器,他和View層就是一起堆在Activity里面。

寫代碼的宗旨就是高內(nèi)聚低耦合,但是在Activity中會(huì)隨著功能的復(fù)雜邏輯代碼越來越臃腫(沒錯(cuò),還有像我這種adapter懶得抽出來也直接寫在activity里面的)。所以接下來就介紹一下MVP模式的舒服之處。
MVP模式
分別是Model(數(shù)據(jù))、View(視圖)、Presenter(主持者)
Model層沒有變
View層也沒有變他還是在activity里面但是他不會(huì)再與model層進(jìn)行直接交互,數(shù)據(jù)不像以前一樣直接在acitivity里面進(jìn)行交易QAQ
Presenter層這位我還是說說我使用的情況吧,我只是對(duì)我自己知道的進(jìn)行總結(jié),其他比較6的模式我還不清楚,因?yàn)槁犝f還有很多的變形

這個(gè)模式的使用我都是在網(wǎng)絡(luò)框架中進(jìn)行使用別的部分為了activity代碼簡(jiǎn)潔都是把a(bǔ)dapter一類的抽取出來,一共需要兩個(gè)類和一個(gè)主持者接口(就是一個(gè)普通接口,為了區(qū)分方便才交這個(gè)名字的)兩個(gè)類分別是avitivity和presenter,activity實(shí)現(xiàn)主持者接口,讓presenter中new一個(gè)主持者接口對(duì)象,當(dāng)Presenter的方法被調(diào)用的時(shí)候,在Presenter的方法中處理網(wǎng)絡(luò)調(diào)用,成功之后將網(wǎng)絡(luò)接口返回的信息傳遞到主持者接口的方法中,因?yàn)閍cticity實(shí)現(xiàn)了主持者接口就能在重寫的方法中獲得Presenter調(diào)用網(wǎng)絡(luò)接口返回的數(shù)據(jù)。
這樣一來本來在model層中的邏輯處理代碼,變成了從Presenter層接口返回的值,MVP與MVC的不同點(diǎn)是M層與V層不可以直接進(jìn)行交互,而是通過P層進(jìn)行數(shù)據(jù)和邏輯的傳遞,當(dāng)后期項(xiàng)目變得龐大的時(shí)候,可以很快的清理項(xiàng)目和找到需要改動(dòng)的地方,高內(nèi)聚,低耦合的可也通過接口更加方便的進(jìn)行但愿測(cè)試。
就先寫到這了以后有的進(jìn)行補(bǔ)充(捂臉。。。)