mvc (model-view-controller)模式,即模型-檢視-控制器模式,其核心思想是將整個程式**分成相對獨立而又能協同工作的3個組成部分,具體的功能如下:
模型(model):業務邏輯層。實現具體的業務邏輯、狀態管理的功能。
檢視(view):表現層。就是與使用者實現互動的頁面,通常實現資料的輸入和輸出功能。
控制器(controller):控制層。起到控制整個業務流程的作用,實現view層跟model層的協同工作。
程式中經常遇到這樣的情況:
有兩個集合(物件)a和b,兩者通過抽象成為獨立的實體,但是希望建立a和b之間的關係。
處理方式可否理解為如下三種:
1.將b作為引數傳遞到a中可以作為屬性傳入,可以作為方法的引數傳入;如果將方法也作為一種物件,就更是如此。
2.建立乙個c(controller)物件,將b(model)傳入c,在c中將b傳入a(view),再在a中呼叫b的資料。——mvc,上面的return view(personalinformation)可見一斑。
3.建立乙個c物件(presenter)物件,將b(model)和a(view)傳入,有c呼叫b獲取資料,由c傳入獲取的資料在a中使用;如果a產生事件,在事件訂閱方法中對b物件進行操作。——mvp,感覺作業系統的資源管理器就是乙個mvp模式,model=資料檔案,view=資源管理器窗體,p=作業系統,作業系統負責呼叫model的資料在資源管理器窗體中顯示,同時資源管理器和作業系統通訊,在資源管理器中的使用者操作和事件,由作業系統負責響應並執行,即p操作m。
程式中物件無非就是兩種關係,一種是兩角關係,一種是三角戀;其實歸根結締是兩角關係。想將兩個物件建立關係,就必須考慮兩角戀還是三角戀,當然我們一直就是這樣做的!這和現實事件很相似:
boyfriend和girlfriend兩個人,boyfriend可以kiss他的girlfriend,boyfriend通過自己的方法kiss與girlfriend建立了聯絡
a同學和b同學在同一所學校上學,a和b通過學校這個物件聯絡起來。
前者是直接聯絡,後者是間接聯絡。聯絡可以相互聯絡;也可以內部聯絡,即物件和其自身的組成部分相聯絡。
多個程式都通過作業系統聯絡起來;乙個窗體的訊息傳入操做系統,由作業系統負責觸發事件;程式也是一種哲學啊!
MVP和MVC的區別
1 mvc model controller view 把業務剝離到controller中,讓view專注於現實ui。但是view和model並沒有解耦合,controller和view有可能由同乙個物件承擔,比如android的activity.2.mvp model view presenter...
MVC和MVP的區別
mvc的概念 mvc是model view controller的縮寫,分別代表web應用程式中的3種職責。模型 用於儲存資料以及處理使用者請求的業務邏輯。檢視 想控制器提交資料,顯示模型中的資料。控制器 根據檢視提出的請求,判斷將請求和資料交給哪個模型處理,處理後的有關結果交給哪個檢視顯示更新顯示...
MVC與MVP(僅限個人的理解)
mvc分為 model 資料抽象 view 檢視 controller 控制器 的三層架構。接下來我們分別來一一解析每一層所對應的職責分別是什麼。窗框 窗架 玻璃 玻璃上的窗花 優點 邏輯清晰,controller層和view層在一起的 在乙個類裡面,在乙個activity或者fragment 層次...