每日一面試題--MVC思想是什麼?
1.認識兩個類似的名詞!
MVP-Backbone.js(model-view-presenter;模型-檢視-表現類)
MVVM-Knockout.js(model-view-viewmodel;模型-檢視-檢視模型)
---核心:實現了業務邏輯和顯示的分離
1).model(模型)、view(檢視)、control(控制層),是軟體工作中的一種架構模式;
--模型:用於封裝和應用程式的業務邏輯相關的資料和資料處理方法;
--檢視:監聽模型層上的資料改變,並實時更新html頁面,一些事件的註冊和ajax請求操作(釋出事件)也是在檢視層完成;
--控制層:接受使用者操作,訂閱檢視層的事件,呼叫模型更新模型上資料,資料更新後,釋出訊息,檢視層監聽資料變化,更新頁面顯示;
2)優點:
--耦合性低:view和control分離,允許更改view,卻不用修改model和control,很容易改變應用層的資料層和業務規則
--可維護性:分離view和control使得web應用更容易維護和修改(分工明確,邏輯清晰)
3)前端:(Angular.js和Ember.js兩個框架為代表)
--view-負責頁面的顯示和樣式展示;
--control-進行節點事件的註冊和控制,以及頁面載入效能的實現;
--Model-邏輯處理,例如popup、drag等元件
*Angular框架的MVC圖解:
Model:負責管理應用程式的資料,響應來自檢視的請求,同時也響應指令使控制器自我更新;
View:由控制器決定觸發顯示資料,基於指令碼的模組系統,如jsp,php,非常容易用ajax技術整合
Controller:負責響應來自使用者的輸入執行互動資料模型物件,控制器接受到輸入,驗證輸入,然後執行-修改資料模型的狀態-的業務操作
4)後端php:(tp框架典型!)
--view:顯示使用者的互動介面;
--model:完成具體業務邏輯(包括資料庫的crud操作(增加,讀取,更新,刪除)和其他一些常規操作,如檔案上傳,驗證碼);
--control:負責業務的排程