當前位置:首頁 » 安卓系統 » androidmvp模式

androidmvp模式

發布時間: 2022-07-26 05:40:16

『壹』 android mvp模式判斷放哪裡

著作權歸作者所有。 幾乎所有的思想都是為了解耦,提高維護性。 解耦可在生產中實際效果是,把一個大工程,拆分成多個小工程,每個工程之間功能相互獨立,可單獨測試。這樣的好處是把單線程變成多線程,原來需要一個人做一年的工作量,現在可以拆成12個人來做,一個月就能做完。而且每個人都只專注於自己那部分,對於大項目,或者工期緊的項目是非常重要的。要掌握好度,對於十分簡單的功能,也要分的稀碎,就有點過度設計之嫌了。 另一方面提高了維護性,就是容易區分邊界,一旦出了問題,能立刻定位是哪個模塊,哪個介面出了問題。責成相關責任人去修改。 功能模塊化,容易寫測試用例。如果你寫的話。╮(╯_╰)╭ 功能模塊化,讓接手的人更佳容易理解你的思路,工作交接什麼的更順利。 最大的好處是,讓你自己的思路更清晰。不至於自己的代碼,兩天後再來看就成了"別人的代碼"了。 優秀的命名規則加上好的介面設計,可以寫很少的注釋,別人也能輕易讀懂。即便某一模塊讀不懂,也能知道,這個模塊實現了這個功能,先放一放,以後回來再看,不影響擼清業務邏輯。 不要嫌棄代碼量多。因為有些公司可能按代碼量算工資噢(偽)。 我剛接觸編程時候,第一門語言是C,指哪打哪。後來剛接觸C++的面相對象編程思想後,也有過和題主一樣的想法,完全就是把簡單的事情搞復雜了好嗎。。。直到看完馬士兵老師的java教程後。深入理解面相對象的意義,才發現,面相對象簡直是上帝創世一樣牛逼的思想啊! 題主要是想往高級語言發展,這條路是必須要經歷的,多多練習吧! 手機打字,想到哪裡說哪裡。湊合看吧。

『貳』 如何理解android mvp模式中的interactor

Presenter起到的其實就是一個粘合劑的角色。

它調度了UI邏輯和數據邏輯,然而UI邏輯和數據邏輯的具體實現,Presenter是不用關心的,只需要處理好如何調度,和狀態處理即可。

理解這個之前,你需要理解Model 和 ViewModel,一個Model也就是我們平常說的JavaBean,例如一個User類,它有自己的基本屬性。姓名,年齡,用戶名,密碼等等。

而ViewModel代表的是視圖的Model,例如一個登陸視圖,它的ViewModel包含用戶名,密碼。

所以Model是不能直接被視圖使用的,我們需要轉換成ViewModel的形式,然後綁定到視圖上。

你可能會說,我也可以直接綁定Model的屬性到View上,但是這樣View和Model就不是相互獨立的了,也就違背了我們使用MVP、MVVM的初衷。

Interactor的作用實際上就是獲取Model(從本地資料庫,或者是伺服器),轉換成ViewModel,回調通知把ViewModel傳遞給Presenter。

Presenter實現了Interactor的回調介面,可以接收到ViewModel的實例,此時它在回調函數裡面只需要將接收到的ViewModel綁定的View上面即可。

可以看到,在這個過程中Presenter並沒有觸及到具體的實現,只是把View 和 ViewModel進行了綁定而已。

當然你也可以把數據邏輯寫在Presenter,但是Interactor就不存在了,其實Interactor也是可以重用的

『叄』 如何看待android mvp 設計模式的優缺點

MVP設計模式是為了方便ASP.

『肆』 Android MVP解釋!,

優點:view由Activity承擔,Presenter做業務,結構清晰(模式么就是講究一個套路,結構清晰後來者維護也是受益的)。之前開發都是全寫一個類-Activity裡面,業務復雜的情況下看著頭疼。看一些公司招android還講究mvc,™Activity到底算v還是c,還是兩者都是?缺點:每個view有個presenter,類多了。不說presenter重用,實際工作中我是沒法抽象使得presenter重用(技術渣)。有時候業務簡單就直接一個Activity搞定了。

『伍』 Android MVP模式中,一個Activity對應多個Presenter時該怎樣抽象

View 和 Presenter 之間是有協議約束的.
假設現有V1, P1, V2, P2, 一個ActivityA對應了P1/P2的功能, 也應該說明它實現了V1/V2介面, 此時應該有PresenterA 實現了P1, P2. 這就是完整的VP的協議就對上了.
這里既然多個頁面可能用到同樣的功能, 最簡單的方式我節點使用多繼承(一個Persenter實現ABCD四個介面), 這樣不管Activity實際上用的都是同一個Persenter.如果確定現在已經有實現了, 按樓上的方法實現一個代理就可以了.

實在要實現多個Presenter的話, 可以定義幾個不同的類, 來支持不同多個Presenter的擴展:

class BaseMvpActivity1<P> extent BaseActivity {
P presenter;
}
class BaseMvpActivity2<P1, P2> extent BaseActivity {
P1 presenter1;
P2 presenter2;
}

但不推薦這樣做(失去抽象, 違反依賴倒置原則); 更不推薦使用數組或List(基類使用泛型方便編譯器檢查, 數組或List在具體使用時需要做類型的強轉)

『陸』 android mvp m層主要是處理請求嗎

MVP(Model
View
Presenter)模式是著名的MVC(Model
View
Controller)模式的進化版本。
MVP模式:
1.
View:View通常來說是由Activity實現的,它會包含一個Presenter的引用,View要做的就只是在每次有介面調用的時候(比如按鈕點擊後)調用Presenter的方法。
2.
Model:業務邏輯和實體模型
3.
Presenter:主要作為溝通View和Model的橋梁,它從Model層檢索數據後,返回給View層,但是不像MVC結構,因為它也可以決定與View層的交互操作。
MVC模式:
1.
View:對應於布局文件
2.
Model:業務邏輯和實體模型
3.
Controller:控制器,Android中對應於Activity
在MVP模式中,View和Model的交互是需要Presenter來當作一個跳板。Model層負責的就是業務邏輯實現和請求結果回調,實體類也包括在其中。

『柒』 Android MVP 開發模式有哪些優缺點

androidMVP開發模式的優點1)View和Model之間的耦合度降低,使其更關注自身業務邏輯,結構清晰,維護方便;2)便於單元測試;3)代碼復用率提高;4)代碼框架更適用於快速迭代開發;androidMVP開發模式的缺點任何開發模式都是有利也有弊的,畢竟世間完美的事物還是少見的。上面提到了MVP模式的有點,那就不得不說其還存在的缺點,或者說不足更准確吧。MVP模式的不足,主要表現在每個view都有presenter,類相對比較多。

『捌』 android mvp是什麼意思

MVP模式是MVC模式在Android上的一種變體,要介紹MVP就得先介紹MVC。在MVC模式中,Activity應該是屬於View這一層。而實質上,它既承擔了View,同時也包含一些Controller的東西在裡面。這對於開發與維護來說不太友好,耦合度大高了。把Activity的View和Controller抽離出來就變成了View和Presenter,這就是MVP模式。
在Android項目中,Activity和Fragment占據了大部分的開發工作。如果有一種設計模式(或者說代碼結構)專門是為優化Activity和Fragment的代碼而產生的,你說這種模式重要不?這就是MVP設計模式。
按照MVC的分層,Activity和Fragment(後面只說Activity)應該屬於View層,用於展示UI界面,以及接收用戶的輸入,此外還要承擔一些生命周期的工作。Activity是在Android開發中充當非常重要的角色,特別是TA的生命周期的功能,所以開發的時候我們經常把一些業務邏輯直接寫在Activity裡面,這非常直觀方便,代價就是Activity會越來越臃腫,超過1000行代碼是常有的事,而且如果是一些可以通用的業務邏輯(比如用戶登錄),寫在具體的Activity里就意味著這個邏輯不能復用了。如果有進行代碼重構經驗的人,看到1000+行的類肯定會有所顧慮。因此,Activity不僅承擔了View的角色,還承擔了一部分的Controller角色,這樣一來V和C就耦合在一起了,雖然這樣寫方便,但是如果業務調整的話,要維護起來就難了,而且在一個臃腫的Activity類查找業務邏輯的代碼也會非常蛋疼,所以看起來有必要在Activity中,把View和Controller抽離開來,而這就是MVP模式的工作了。

『玖』 我是覺得mvp不適合android,增加那麼多介面,雖然能解耦,但實際情況是改動一點需求就要涉及好

我今天在研究MVVM你要不要一起啊。你說的是

復雜的業務同時會導致presenter層太大,代碼臃腫的問題。

MVVM為MVP升級版哇,有空研究一下子。網頁鏈接

熱點內容
windows雲伺服器教程 發布:2025-01-21 20:23:45 瀏覽:871
阿里svn伺服器搭建 發布:2025-01-21 20:22:02 瀏覽:948
python查看編碼 發布:2025-01-21 19:58:12 瀏覽:836
人記憶存儲位置 發布:2025-01-21 19:55:05 瀏覽:690
計算機存儲容量的基本單位是 發布:2025-01-21 19:35:44 瀏覽:980
c語言怎麼給字元賦值 發布:2025-01-21 19:30:45 瀏覽:122
拍賣php源碼 發布:2025-01-21 19:27:52 瀏覽:115
數控編程南京 發布:2025-01-21 19:20:16 瀏覽:163
ftp伺服器功能為 發布:2025-01-21 19:05:53 瀏覽:121
7z解壓有密碼 發布:2025-01-21 19:05:08 瀏覽:608