MVC MVP MVVM三者的區別

2022-03-31 07:35:23 字數 874 閱讀 2305

mvc,model view controller,是軟體架構中最常見的一種框架,簡單來說就是通過controller的控制去操作model層的資料,並且返回給view層展示,具體見下圖

當使用者出發事件的時候,view層會傳送指令到controller層,接著controller去通知model層更新資料,model層更新完資料以後直接顯示在view層上,這就是mvc的工作原理。

mvp作為mvc的演化,解決了mvc不少的缺點,對於android來說,mvp的model層相對於mvc是一樣的,而activity和fragment不再是controller層,而是純粹的view層,所有關於使用者事件的**全部交由presenter層處理。下面還是讓我們看圖

從圖中就可以看出,最明顯的差別就是view層和model層不再相互可知,完全的解耦,取而代之的presenter層充當了橋梁的作用,用於操作view層發出的事件傳遞到presenter層中,presenter層去操作model層,並且將資料返回給view層,整個過程中view層和model層完全沒有聯絡。

mvvm最早是由微軟提出的

從圖中看出,它和mvp的區別貌似不大,只不過是presenter層換成了viewmodel層,還有一點就是view層和viewmodel層是相互繫結的關係,這意味著當你更新viewmodel層的資料的時候,view層會相應的變動ui。

tailf tail f tail F三者區別

tail f 等同於 follow descriptor,根據檔案描述符進行追蹤,當檔案改名或被刪除,追蹤停止 tail f 等同於 follow name retry,根據檔名進行追蹤,並保持重試,即該檔案被刪除或改名後,如果再次建立相同的檔名,會繼續追蹤 tailf 等同於tail f n 10...

tailf tail f tail F三者區別

tail f 等同於 follow descriptor,根據檔案描述符進行追蹤,當檔案改名或被刪除,追蹤停止 tail f 等同於 follow name retry,根據檔名進行追蹤,並保持重試,即該檔案被刪除或改名後,如果再次建立相同的檔名,會繼續追蹤 tailf 等同於tail f n 10...

cout ceer clog三者區別

之前一直在用,但就是沒在意兩者到底有啥卻別,今天又想到這個問題,總結下吧 以下的內容均是本人從網上查閱資料看來整理的,暫時還沒有查閱官方資料,不保證準確,歡迎討論 這三者在c 中都是標準io庫中提供的輸出工具 至於有關的過載問題在此不討論 cout 寫到標準輸出的ostream物件 cerr 輸出到...