日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

MVP模式在Android中的应用(附UML高清大图,使用RecyclerView举例)

發布時間:2024/7/5 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVP模式在Android中的应用(附UML高清大图,使用RecyclerView举例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳了一張圖,圖比較大,請移步下載:http://download.csdn.net/detail/u011064099/9266245


在看代碼之前,首先簡單看一下什么是MVP模式:http://www.cnblogs.com/end/archive/2011/06/02/2068512.html

MVP最核心就是將界面與數據徹底分離,并且由其中的P來進行邏輯處理,與界面與數據之間的調用,在這個例子當中很好的對他們進行了分離:

IView只是用來控制界面的顯示與事件的監聽

Presenter則用作于數據與界面之間的調用與邏輯處理

AbstData為數據的統一接口

這三個類都繼承IConnect,以方便它們之間進行通訊。

具體的實現都是由Presenter的子類來進行操作的,比如ShowNetPresenter它組裝了具體的細節,供IView的實現類ActivityA來進行使用。


我們可以在Activity中寫入一個靜態方法,以便傳入我們要具體使用的Presenter的實現類:

/*** 我們的入口** @param context* @param c Presenter具體的實現類*/public static void startInstance(Context context, Class c) {Intent intent = new Intent(context, MVPActivity.class);intent.putExtra(KEY, c);context.startActivity(intent);}就像這樣:

MVPActivity.startInstance(context, PresenterImpl.class);在它的內部,對傳入的類進行實例化:

Class<?> c = (Class<?>) getIntent().getSerializableExtra(KEY); Constructor<?> constructor = c.getConstructor(IView.class); Object o = constructor.newInstance(this); if (o instanceof Presenter)mPresenter = (Presenter) o;
于是,IView的實現類便于Presenter的實現類產生了交互,它們之間便可進行通訊。


更多詳情請參見項目源碼:

項目地址:?http://git.oschina.net/sahadev/MVP-for-android-



在該項目中,因為有些倉促,所以某些設計可能沒有完全遵從設計原則,請在使用的時候適當修改。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的MVP模式在Android中的应用(附UML高清大图,使用RecyclerView举例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。