MVC和MVVM的區別?

1.MVC

  1.概念:

    M是指業務模型,V是指用戶介面,C則是控制器。

      M即model模型,數據層,負責數據的處理和獲取的數據介面層。

      V即View視圖,視圖層,是指用戶看到的並且與之交互的介面。比如由html元素組成的網頁介面,或者軟體的客戶端介面。

      C即controller控制器,控制層,它是Model 和 View 之間的膠水或者說是中間人。

    模型(model)    視圖(view)    控制器(controller)

      圖示:

        

 

      應用場景:

        主要用於中大型項目的分層開發。

      運作流程:

        Model 和 View 是完全隔離的,由 Controller 作為中間人來負責二者的交互

        同時三者是完全獨立分開的

        這樣可以保證 M 和 V 的可測試性和復用性以及維護性,但是一般由於 C 都是為特別的應用場景下的 M 和 V 做中間者,所以很難復用。

   2.好處:

    耦合性低

    重用性高

    部署快,生命周期成本低。

    可維護性高。

  3. 存在的問題

    不適合小型,中等規模的應用程式。

    視圖與控制器間的過於緊密的連接並且降低了視圖對模型數據的訪問。

2.MVVM

  1. 概念:

    Model —->  每個頁面單獨數據

    View —->  每個頁面中的HTML結構

      

 

     Model —- View —- VM(ViewModel)

      

 

   2. 好處

    數據驅動

      

 

 

    VM提供數據的雙向綁定