Android MVP模式 簡單易懂的介紹方式

2021-07-16 06:47:59 字數 2269 閱讀 3211

android mvp 模式1 也不是什麼新鮮的東西了,我在自己的專案裡也普遍地使用了這個設計模式。當專案越來越龐大、複雜,參與的研發人員越來越多的時候,mvp 模式的優勢就充分顯示出來了。

public class loginactivity extends actionbaractivity implements iloginview, view.onclicklistener 

@override

public void onclick(view v)

}@override

public void oncleartext()

@override

public void onloginresult(boolean result, int code)

else

toast.maketext(this,"login fail, code = " + code,toast.length_short).show();

}@override

public void onsetprogressbarvisibility(int visibility)

}

從**可以看出loginactivity只做了findview以及setlistener的工作,而且包含了乙個iloginpresenter,所有業務邏輯都是通過呼叫iloginpresenter的具體介面來完成。所以loginactivity的**看起來很舒爽,甚至有點愉♂悅呢 (/ω\*)。視力不錯的你可能還看到了iloginview介面的實現,如果不懂為什麼要這樣寫的話,可以先往下看,這裡只要記住loginactivity實現了iloginview介面。

再來看看iloginpresenter

public inte***ce iloginpresenter

public class loginpresentercompl implements iloginpresenter 

@override

public void clear()

@override

public void dologin(string name, string passwd)

}, 3000);

}@override

public void setprogressbarvisiblity(int visiblity)

private void inituser()

從**可以看出,loginpresentercompl保留了iloginview的引用,因此在loginpresentercompl裡就可以直接進行ui操作了,而不用在activity裡完成。這裡使用了iloginview引用,而不是直接使用activity,這樣一來,如果在別的activity裡也需要用到相同的業務邏輯,就可以直接復用loginpresentercompl類了(乙個activity可以包含乙個以上的presenter,總之,需要什麼業務就new什麼樣的presenter,是不是很靈活(@ ̄︶ ̄@)),這也是mvp的核心思想

通過iview和ipresenter,把activity的ui logicbusiness logic分離開來,activity just does its basic job! 至於model嘛,還是原來mvc裡的model。

再來看看iloginview,至於iloginview的實現類呢,翻到上面看看loginactivity吧

public inte***ce iloginview

**這種東西放在日誌裡講好像除了把整個版面拉長沒什麼卵用,我把幾種自己常用的mvp的寫法寫成乙個demo專案,歡迎圍觀和pullrequest:android-mvp-pattern。

以上就是我的mvp模式的一點理解,在mvvm模式還沒有成熟的現在,我覺得沒有比mvp模式更好的替代品了。當然今天寫的只是mvp的基礎使用,介紹的例項專案也非常簡單,看不出mvp的優勢,後面還會針對mvp模式寫一些日誌,就目前能想到的至少包括

我也糾結過mvp模式或者mvp結構的說法那個跟準確一點,國外普遍的叫法是直接叫android mvp,除此之外有叫mvp pattern的也有叫mvp framework/architecture,個人認為這應該算是一種**風格(code style),在分類上應該比較類似設計模式(design pattern),所以現在我一般稱為模式,不過這不是重點,不是嗎。( ˃◡˂ )↩

Android MVP模式例子

之前看了很多關於mvp模式的簡介,很多時候都是看完之後有很多疑惑,再或者是過幾天就忘記了。今天突然有想起來了,然後又看了看定義,接著參照了一些demo,自己完整的將 重新寫了一邊,使得印象更加深刻一點。這個是我根據網上的一些demo 基本 都是參照的一位大神的 然後根據自己的理解做出的demo 跟網...

我理解的 Android MVP 模式

之前一直使用 mvc 模式開發 android 應用,而 mvp 模式也出現了好久,可能之前還是太菜了吧,看網上部落格,google 官方的例子,總是不懂,不過最近又開始看,多少有了些理解,寫出來與大家分享一下。一開始的 mvc 模式,activity 其實承擔了 v 和 c 的職責。負責 view...

java多執行緒結合單例模式例項,簡單實用易理解

最近接觸到多執行緒,為了弄清原理,寫了以下 新建以下類 多執行緒執行順序測試 public class threadtest system.out.println 主線程 i i system.out.println 主線程顯示子執行緒此時的資料是 子執行緒 datadeal.threadnumof...