国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MVC,MVP,MVVM淺析

Vultr / 629人閱讀

摘要:的模式之間不同主要是與的數據傳遞的流程不同。所以無論是復雜化簡單化還是修改流程,基本都是因為技術棧變化了對應做的調整。實例實際項目往往采用更靈活的方式,以為例。用戶可以向發送指令事件,再由直接要求改變狀態。與不發生聯系,都通過傳遞。

概述

M -V- X 本質都是一樣的 重點還是在于M-V 的橋梁
要靠 X來牽線。

X的模式之間不同 主要是 M與V 的數據傳遞的流程不同。
數據傳遞的流程不同來源于運行環境技術棧能夠做到的事情不同。
所以無論是復雜化 簡單化 還是修改流程,基本都是因為技術棧變化了 對應做的調整。

在相同技術棧下 能夠實現的各種 X都可以是大同小異的。
在不同技術棧下 相同的X可能實現都大相徑庭,僅有非常抽象的流程類似。

前端框架演變

MVC

視圖(View):用戶界面。

控制器(Controller):業務邏輯

模型(Model):數據保存
MVC的一般流程是這樣的:View(界面)觸發事件--》Controller(業務)處理了業務,然后觸發了數據更新--》不知道誰更新了Model的數據--》Model(帶著數據)回到了View--》View更新數據

缺陷:在MVC,當你有變化的時候你需要同時維護三個對象和三個交互,這顯然讓事情復雜化了。

實例:Backbone

實際項目往往采用更靈活的方式,以 Backbone.js 為例。

用戶可以向 View發送指令(DOM 事件),再由 View直接要求 Model 改變狀態。

用戶也可以直接向 Controller發送指令(改變 URL 觸發 hashChange 事件),再由 Controller發送給 View。

Controller非常薄,只起到路由的作用,而 View非常厚,業務邏輯都部署在 View。所以,Backbone索性取消了 Controller,只保留一個 Router(路由器) 。

MVP

MVP是對MVC的一種優化或者替代
來看兩幅圖


兩幅圖是不同的,但是對MVC的改進的思想卻是一樣的:切斷的ViewModel的聯系,讓View只和Presenter(原Controller)交互,減少在需求變化中需要維護的對象的數量。
MVP定義了PresenterView之間的接口,讓一些可以根據已有的接口協議去各自分別獨立開發,以此去解決界面需求變化頻繁的問題。上面兩圖都有接口,不過接口的實現和使用細節不一樣,不過思想上是一致的。
在這里要提到的是,事實上,需求變化最頻繁的并不一定是最接近用戶的界面,但基本可以確定的是,最接近用戶的界面是因為需求變化而需要最頻繁更改的。當然,如果View如果是API而不是UI,那就另說了。
特點可以總結為:

各部分之間的通信,都是雙向的。

ViewModel不發生聯系,都通過 Presenter傳遞。

View非常薄,不部署任何業務邏輯,稱為"被動視圖"(Passive View),即沒有任何主動性,而 Presenter非常厚,所有邏輯都部署在那里。

MVVM

ViewModel大致上就是MVPPresenter和MVC的Controller了,而ViewViewModel間沒有了MVP的界面接口,而是直接交互,用數據“綁定”的形式讓數據更新的事件不需要開發人員手動去編寫特殊用例,而是自動地雙向同步。數據綁定你可以認為是Observer模式或者是Publish/Subscribe模式,原理都是為了用一種統一的集中的方式實現頻繁需要被實現的數據更新問題。
比起MVP,MVVM不僅簡化了業務與界面的依賴關系,還優化了數據頻繁更新的解決方案,甚至可以說提供了一種有效的解決模式。

AngularEmber 都采用這種模式。

實際上,現在Web MVVM主要并不是用在了Web或者Wap上,而是移動App上。按照前面的說法,只可能是:
HTML+JS比原生在一些場景上更適合Native
在移動App上比Web上更適合使用MVVM
哪怕是Native開發,實際上iOS的開發上也是用類似的數據綁定的方式的。這里也不深究了,畢竟我也不算懂iOS。
要說的是,在Web MVVM或者Web的模式上,也就是Web的富應用上,現在還不過是個初期由膨脹的需求推動的階段。重要的不是技術會怎么走,而是需求和客觀條件會怎么走。

參考資料

MVC,MVP 和 MVVM 的圖示
知乎:你對MVC、MVP、MVVM 三種組合模式分別有什么樣的理解?

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90913.html

相關文章

  • 淺析 web 前端 MVVM

    摘要:它由微軟架構師和開發,通過利用微軟圖形系統和的互聯網應用派生品的特性來簡化用戶界面的事件驅動程序設計。微軟的和架構師之一于年在他的博客上發表了。更改時會得到提醒這個情況是一個單向流。 前言 記得四個月前有一次面試,面試官問我 MVVM 是什么,MVVM 的本質是什么。我大腦一片混亂,那時我對 MVVM 的認知就只是雙向綁定和Vue,以這個關鍵字簡單回答了幾句,我反問 MVVM 的本質是...

    VincentFF 評論0 收藏0
  • 一篇文章了解前端框架演變

    摘要:所以我查了很多的材料,希望能從自己的角度上用通俗的語言闡述前端框架的演變?,F在,前端頁面會有很多復雜的交互邏輯和用戶體驗,如果還使用之前老的框架,對層的操作就會難以維護,這就是前端框架要不斷演變的主要原因。 說實在的,我不覺得MVC,MVVM這些框架有什么難的,直到我想寫一篇文章去系統的闡述它們。我遇到了以下幾個問題,1.不同的文章說的南轅北轍 2.沒有一個清晰的大綱和框架分類。所以我...

    lvzishen 評論0 收藏0
  • 一篇文章了解前端框架演變

    摘要:所以我查了很多的材料,希望能從自己的角度上用通俗的語言闡述前端框架的演變。現在,前端頁面會有很多復雜的交互邏輯和用戶體驗,如果還使用之前老的框架,對層的操作就會難以維護,這就是前端框架要不斷演變的主要原因。 說實在的,我不覺得MVC,MVVM這些框架有什么難的,直到我想寫一篇文章去系統的闡述它們。我遇到了以下幾個問題,1.不同的文章說的南轅北轍 2.沒有一個清晰的大綱和框架分類。所以我...

    Freelander 評論0 收藏0

發表評論

0條評論

Vultr

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<