MVP框架模式

2022-06-17 05:18:13 字數 1542 閱讀 7326

mvp是model-view-presenter的簡稱,即模型-檢視-表現層的縮寫。mvp是由mvc模式進化而來的,mvp改進了mvc中的控制器過於臃腫的問題。

與mvc一樣,mvp將應用程式的資料處理、資料顯示和邏輯控制分開,用一種業務邏輯、資料顯示和介面相分離的方法組織**。

mvp與mvc相比,mvp減少了activity的職責,簡化了activity的**,將複雜的邏輯**提取到了presenter中進行處理。presenter的出現,將activity視為view層,presenter負責完成view層與model層的互動。與之對應的好處就是:程式耦合度更低,更加方便地進行測試,程式可擴充套件性大大提高。

mvp從mvc演化而來,它們的基本思想有相通的地方。controller與presenter負責邏輯的處理,model提供資料,view負責顯示資料。mvp作為乙個新的模式,與mvc有乙個重大的區別:在mvp中view並不直接使用model,它們之間的通訊是通過presenter來進行的,所有的互動都發生在presenter內部;而在mvc中view會直接從model讀取資料。

mvp解決了mvc問題:

在mvp中,presenter完全把view與model進行分離,主要的程式邏輯在presenter實現。而且,presenter與具體的view是沒有直接關聯的,而是通過定義好的介面進行互動,從而使得在變更view層的時候可以保持presenter不變。不僅如此,我們還可以編寫測試用的view,模擬使用者的操作,從而實現對presenter的測試——而不需要使用自動化的測試工具。

mvp中的view層是很薄的一層,view只應該有簡單的set/get方法、使用者輸入和介面顯示的內容,除此之外不應該有更多的內容,絕不允許直接訪問model——這就是mvp與mvc的很大不同之處。

模型表示業務邏輯和實體模型,提供資料給presenter。

檢視是使用者看到並與之互動的介面。檢視向使用者顯示相關的資料,並能接受使用者的輸入資料,但它不進行任何實際的業務處理。

應用程式主要的程式邏輯在presenter內實現,而且presenter將model和view完全分離,所有的互動都發生在presenter內部,具體業務邏輯全部交由presenter介面實現類中進行處理。

1、模型與檢視完全分離,我們可以修改檢視而不影響模型。

2、可以更加高效地使用模型,因為所有的互動都發生在presenter內部。

3、我們可以將乙個檢視用於多個檢視,而不需要改變presenter內部的邏輯。這個特性非常有用,因為檢視的變化總是比模型的變化要頻繁。

4、把程式邏輯放在presenter中,我們就可以脫離使用者介面來測試這些邏輯了。(單元測試)

由於對view的操作放在了presenter中,所以view和presenter的互動會過於頻繁。如果presenter過多地操作檢視,往往會使得它與特定的 view聯絡過於緊密。一旦檢視需要改變,那麼presenter也需要改變。

何謂MVP模式?

mvp 是從經典的模式mvc演變而來,它們的基本思想有相通的地方 controller presenter負責邏輯的處理,model提供資料,view負責顯示。作為一種新的模式,mvp與mvc有著乙個重大的區別 在mvp中view並不直接使用model,它們之間的通訊是通過presenter mvc...

MVP模式入門

一 什麼是mvp?mvp 全稱 model view presenter mvp 是從經典的模式mvc演變而來,它們的基本思想有相通的 地方 controller presenter負責邏輯的處理,model提供資料,view負責顯示。model 資料層,和mvc中的m一樣,用來放資料的處理 比如網...

MVP設計模式

建立ipresenter介面,把所有業務邏輯的介面都放在這裡,並建立它的實現presentercompl 在這裡可以方便地檢視業務功能,由於介面可以有多種實現所以也方便寫單元測試 建立iview介面,把所有檢視邏輯的介面都放在這裡,其實現類是當前的activity fragment activity...