Model – 爲UI層提供的數據,或者保存UI層傳下來的數據
設計模式
View – 單純的展現數據,響應用戶操做並都轉發給Presenter來作具體的處理架構
Presenter – 邏輯控制層,從Model處取數據,運算和轉化,最後用View來展現;並處理View傳過來的用戶事件,並作處理測試
須要注意的是MVP僅用於應用中的GUI部分,它並非整個應用的架構方式。一個應用的主要的架構應該包括基礎組件,業務邏輯層和GUI展現層,而MVP僅是用於展現層的設計模式。另外,它是一個方法論的東西,沒有固定的實現方式,只要能體現出它的方法就能夠算是MVP。spa
MVC之中邏輯是放在了Model裏,Controller負責橋接View和Model,View發生變化時通知Controller,Controller再通知Model,Model進行邏輯處理,更新數據,而後通知View來刷新。能夠看到MVC中三者之間都有聯繫,若是處理很差,或者當View比較複雜時,三者之間都會雙向關聯。MVC在命令行應用,以及WEB中有大量的應用,但對於客戶端(PC和移動端)的GUI應用,MVC每每解決不了複雜性,移植性上以及可測試性上也沒有優點。命令行
MVP的改進在於:設計
邏輯放在Presenter中orm
View和Model抽象成爲接口接口
這樣就帶了二個好處:事件
代碼更加容易移植ip
代碼更加容易加入Unit Testing