轉載至【http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html】html
MVCangularjs
全部的通訊都是單向的。mvc
M(Model)V(View)C(Controller)mvvm
View:視圖:用戶界面--是直接面向最終用戶的「視圖層」,是能與用戶操做交互的界面。spa
Model:模型:數據保存--是核心的「數據層」,是程序要操做的數據或信息。雙向綁定
Controller:控制器:業務邏輯--負責根據用戶從「視圖層」輸入 的指令,選取「數據層」中的數據,而後對其進行相應操做後,產生最後結果。htm
MVPblog
MVP 模式將 Controller 更名爲 Presenter,同時改變了通訊方向事件
M(Model)V(View)P(Presenter)部署
MVVM
MVVM 模式將 Presenter 更名爲 ViewModel,基本上與 MVP 模式徹底一致。
M(Model)V(View)V(View)M(ViewModel)
惟一的區別是,它採用雙向綁定(data-binding):View的變更,自動反映在 ViewModel,反之亦然。Angular 和 Ember 都採用這種模式。