淺談Model–View–Controller(MVC)模型

MVC 架構

引用自 WiKi: MVC模式(Model–view–controller)是軟件工程中的一種軟件架構模式,把軟件系統分爲三個基本部分:模型(Model)視圖(View)控制器(Controller)

結構示意圖

通過下圖可以看到,

  • 視圖(View)層: 一般指可視化界面
  • 模型(Model)層: 指業務邏輯
  • 控制器(Controller)層: 用來調度View層和Model層,起到橋接的作用。

在這裏插入圖片描述

MVC的核心

框架設計的最終都是以實現代碼的可維護行可分離性,以及可複用性爲目的的。

將代碼組織結構分爲此三層,就是要儘可能將各層相互分離,降低代碼耦合性,提高代碼的可複用性。當用戶操作界面(View)時,View層會先將數據傳遞給Controller層,然後Controller再將數據轉發給Modal

可以試想,如果要製作一個可複用的組件庫,首要考慮的就是組件的通用性。如果視圖和模型相互糅合,那麼通用性必然大大降低。因此,分層設計就有了必要性。

MVC的應用

MVC結構應用很廣泛,諸如程序和生活中都存在這種模型的身影。

舉一個簡單的例子,比如我們常用到的計算器。

在這裏插入圖片描述
計算器所展示的圖形界面就相當於我們的View層,當我們輸入數字進行一些操作的時候,這些數字就是Modal層,而Controller就是要去處理這些操作的邏輯。然後Controller返回處理好的結果,重新展示到View中。每個層次分工明確,結構非常清晰。

擴展與思考

如果我們將這種模型進行抽象,可以得出:

  • 模型(Model)層: 存儲的數據倉庫
  • 視圖(View)層: 提供一系列可操作的外部接口可供調用
  • 控制器(Controller)層: 調用接口後,獲取數據,然後進行處理返回給視圖

舉個實際例子,例如: 小商販在地攤上(View)擺滿了貨物(Modal),路人看到心儀的物件時,就指(用戶行爲)給商販要買那個物品。商販就把對應商品拿給買家(Controller),同時,地攤上的商品少了一件(視圖更新)。這樣,一筆買賣就交易完成了,對應的MVC機制是不是也容易理解了一些呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章