天天看點

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

MVC 架構

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

結構示意圖

通過下圖可以看到,

  • 視圖(View)層: 一般指可視化界面
  • 模型(Model)層: 指業務邏輯
  • 控制器(Controller)層: 用來排程View層和Model層,起到橋接的作用。
淺談Model–View–Controller(MVC)模型MVC 架構

MVC的核心

架構設計的最終都是以實作代碼的可維護行、可分離性,以及可複用性為目的的。

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

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

MVC的應用

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

舉一個簡單的例子,比如我們常用到的電腦。

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

電腦所展示的圖形界面就相當于我們的View層,當我們輸入數字進行一些操作的時候,這些數字就是Modal層,而Controller就是要去處理這些操作的邏輯。然後Controller傳回處理好的結果,重新展示到View中。每個層次分工明确,結構非常清晰。

擴充與思考

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

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

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

繼續閱讀