androidmodel
『壹』 android mvp model需要統一彈窗怎麼辦
M:modle實體模型,用於保存實例數據比如bean。V:view視圖對應布局,展示給用戶P:Presenter介面負責完成View於Model間的交互,比如業務邏輯啥的
『貳』 Android 開發問題
Model:實體層,負責獲取實體數據。可詳讀下文。
MVP模式簡單講解,通俗易懂
http://www.apkbus.com/blog-822715-64235.html
Android架構篇--MVP模式的介紹篇
http://www.apkbus.com/blog-866962-68049.html
『叄』 安卓mvc是model,view,controller的縮寫,mvc包含三個部分:
l模型(model)對象:是應用程序的主體部分,所有的業務邏輯都應該寫在該層。
l視圖(view)對象:是應用程序中負責生成用戶界面的部分。也是在整個mvc架構中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結果。
l控制器(control)對象:是根據用戶的輸入,控制用戶界面數據顯示及更新model對象狀態的部分,控制器更重要的一種導航功能,想用用戶出發的相關事件,交給m哦得了處理。
『肆』 如何實現自己的Android MVP框架
前言
MVP作為一種MVC的演化版本在Android開發中受到了越來越多的關注,但在項目開發中選擇一種這樣的軟體設計模式需保持慎重心態,一旦確定使用MVP作為你App的開發模式那麼你就最好堅持做下去,如果在使用MVP模式開發過程中發現問題而且坑越來越大,這時你想用MVC等來重新設計的話基本上就等於推倒重來了。要知道在Android上MVP在現在為止並沒有統一的標准或者框架,不像SSH這三個成熟穩重強而有力的三劍客支持推動著Java EE的開發,所以在運用MVP時一定要做好自己的理解,並且盡量預知自己App各模塊的需求(客戶說改改改,我們就改改改 :-( )以便提前做好充分的設計工作。當然MVP既然能出現那麼必然有它的優點的,不然誰會理會這個冒出來的東西,下面就對Android中MVP做一些闡述。
MVP簡介
相信大家對MVC都是比較熟悉了:M-Model-模型、V-View-視圖、C-Controller-控制器,MVP作為MVC的演化版本,也是作為用戶界面(用戶層)的實現模式,那麼類似的MVP所對應的意義:M-Model-模型、V-View-視圖、P-Presenter-表示器。從MVC和MVP兩者結合來看,Controlller/Presenter在MVC/MVP中都起著邏輯控制處理的角色,起著控制各業務流程的作用。而MVP與MVC最不同的一點是M與V是不直接關聯的也是就Model與View不存在直接關系,這兩者之間間隔著的是Presenter層,其負責調控View與Model之間的間接交互,MVP的結構圖如下所示,對於這個圖理解即可而不必限於其中的條條框框,畢竟在不同的場景下多少會有些出入的。在Android中很重要的一點就是對UI的操作基本上需要非同步進行也就是在MainThread中才能操作UI,所以對View與Model的切斷分離是合理的。此外Presenter與View、Model的交互使用介面定義交互操作可以進一步達到松耦合也可以通過介面更加方便地進行單元測試。
項目效果預覽
包圖中明顯的三層:Model包、Presenter包、UI包,其中,三者都實現各自的結構,Model為WeatherModel、Presenter為WeatherPresenter、View為Weather,那麼具體實現類就是impl包里的了,View層的即為Activity。此外的app和util包無關緊要可以不看。可以看到採用MVP設計後項目明顯多了很多東西,這也是不可避免的,使用原始方法可以使項目開起來簡單些但是以後還有維護呢、測試呢、加功能呢、。。。
entity里的實體屬性基本上對應json里的這些屬性了,代碼不貼了
View裡面的介面:
public interface WeatherView {
void showLoading();
void hideLoading();
void showError();
void setWeatherInfo(Weather weather);
}
WeatherPresenter的介面:
public interface WeatherPresenter {
/**
* 獲取天氣的邏輯
*/
void getWeather(String cityNO);
}
WeatherModel介面:
public interface WeatherModel {
void loadWeather(String cityNO, OnWeatherListener listener);
}
prestener裡面還有個OnWeatherListener,其在Presenter層實現,給Model層回調,更改View層的狀態,確保Model層不直接操作View層。如果沒有這一介面在WeatherPresenterImpl實現的話,WeatherPresenterImpl只有View和Model的引用那麼Model怎麼把結果告訴View呢?當然這只是一種解決方案,在實際項目中可以使用Dagger、EventBus、Otto等第三方框架結合進來達到更加松耦合的設計。
public interface OnWeatherListener {
/**
* 成功時回調
*
* @param weather
*/
void onSuccess(Weather weather);
/**
* 失敗時回調,簡單處理,沒做什麼
*/
void onError();
}
所以demo的代碼流程:Activity做了一些UI初始化的東西並需要實例化對應WeatherPresenter的引用和實現WeatherView的介面,監聽界面動作,Go按鈕按下後即接收到查詢天氣的事件,在onClick里接收到即通過WeatherPresenter的引用把它交給WeatherPresenter處理。WeatherPresenter接收到了查詢天氣的邏輯就知道要查詢天氣了,然後把查詢天氣的具體業務實現交給WeatherModel去實現同時把WeatherListener即WeatherPresenter自己傳給WeatherModel。WeatherModel進行查詢天氣業務後即把結果通過WeatherListener回調通知WeatherPresenter,WeatherPresenter再把結果返回給View層的Activity,最後Activity顯示結果。就這樣,拍磚之處請拍。
End
採用哪種軟體設計模式都是為了達到如下目的,找到合適的加以運用就是最好的:
易於維護
易於測試
松耦合度
復用性高
健壯穩定
------------------------------------------------------------------------------------
以上內容均參考互聯網,希望以上知識對您有所幫助,
『伍』 Android中,什麼是Model
.Model 是數據源層。比如資料庫介面或者遠程伺服器的api。
.Presenter是從Model中獲取數據並提供給View的層,Presenter還負責處理後台任務。
.View是指顯示數據並且和用戶交互的層。在安卓中,它們可以是一個Activity,一個Fragment,一個android.view.View或者是一個Dialog。
MVP的全稱為Model-View-Presenter,Model提供數據,View負責顯示,Controller/Presenter負責邏輯的處理。MVP與MVC有著一個重大的區別:在MVP中View並不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發生在Presenter內部,而在MVC中View會直接從Model中讀取數據而不是通過 Controller。
『陸』 什麼是Activity
Activity
首先,Activity是Android系統中的四大組件之一,可以用於顯示View。Activity是一個與用記交互的系統模塊,幾乎所有的Activity都是和用戶進行交互的,但是如果這樣就能說Activity主要是用來顯示View就不太正確了。
在深入了解Activity之前,我們先要知道一下MVC設計模式,在JAVAEE 中MVC設計模式已經很經典了,而且分的也比較清晰了,但是在Android中,好多人對MVC在Android開發中的應用不是很清楚,下面我就先來介紹一下MVC在Android開發中的應用:
M(Model 模型):Model是應用程序的主體部分,所有的業務邏輯都應該寫在這里,在Android中Model層與JavaEE中的變化不大,如:對資料庫的操作,對網路等的操作都放在該層(但不是說它們都放在同一個包中,可以分開放,但它們統稱為Model層)。
V(View 視圖):是應用程序中負責生成用戶界面的部分,也是在整個MVC架構中用戶唯一可以看到的一層,接收用戶輸入,顯示處理結果;在Android應用中一般採用XML文件里德界面的描述,使用的時候可以非常方便的引入,當然也可以使用JavaScript+Html等方式作為View。
C(Controller控制層)android的控制層的重任就要落在眾多的activity的肩上了,所以在這里就要建議大家不要在activity中寫太多的代碼,盡量能過activity交割Model業務邏輯層處理。
好了,在介紹過Android應用開發中的MVC架構後,我們就可以很明確的知道,在Android中Activity主要是用來做控制的,它可以選擇要顯示的View,也可以從View中獲取數據然後把數據傳給Model層進行處理,最後再來顯示出處理結果。
『柒』 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層負責的就是業務邏輯實現和請求結果回調,實體類也包括在其中。