【架構】MVC模式

架構模式

  如何設計一個程序的結構,這是一門專門的學問,叫作"架構模式"(architectural pattern),屬於編程的方法論。html

  MVC模式就是架構模式的一種,它不只適用於開發軟件,也適用於其餘普遍的設計和組織工做。web

 


MVC模式

  MVC是三個單詞的首字母縮寫,它們是Model(模型)View(視圖)Controller(控制)編程

  這個模式認爲,程序不論簡單或複雜,從結構上看,均可以分紅三層。小程序

  1. 最上面的一層,是直接面向最終用戶的"視圖層"(View)。它是提供給用戶的操做界面,是程序的外殼。
  2. 最底下的一層,是核心的"數據層"(Model),也就是程序須要操做的數據或信息。
  3. 中間的一層,就是"控制層"(Controller),它負責根據用戶從"視圖層"輸入的指令,選取"數據層"中的數據,而後對其進行相應的操做,產生最終結果。

  這三層是緊密聯繫在一塊兒的,但又是互相獨立的,每一層內部的變化不影響其餘層。架構

  每一層都對外提供接口(Interface),供上面一層調用。這樣一來,軟件就能夠實現模塊化,修改外觀或者變動數據都不用修改其餘層,大大方便了維護和升級。mvc

 


程序示例

  bg2007110801.jpg

  以Windows的計算器小程序爲例,解釋一下MVC模式,雖然它不必定使用這個模式編寫。模塊化

  在這個計算器程序中,外部的那些按鈕和最上面的顯示條,就是"視圖層",那些須要運算的數字就是"數據層",執行加減乘除的那些內部運算步驟就是"控制層"。優化

  每一層執行不一樣的功能,整個程序的結構很是清楚。spa

  若是咱們擴大一點想象,就會發現,不少程序本質上都是這種模式:對外提供一組觸發器(本例中是按鈕),而後執行一些內部操做,最後返回結果。設計

  所以,MVC模式的應用是很是普遍的。

 


家用電器示例

  bg2007110802.jpg

  不只編寫程序能夠用MVC模式,家用電器也能夠用。

  以家用微波爐爲例,能夠將它也理解成三層結構。

  最簡單的狀況下,微波爐的操做用兩個轉盤實現,一個控制溫度,另外一個控制時間。這兩個轉盤就是"視圖層"(view)而其內部的微波產生裝置則是"數據層"(Model),這裏的"數據"須要理解成"核心功能"。至於將用戶經過轉盤輸入的信息,轉換成對微波產生器的操做,則用"控制層"來實現。

  若是每一層都是獨立的,那麼微波爐外部更換一個新潮的外殼,或者內部更換更大功率的微波產生器,徹底能夠在不更改其餘層的狀況下實現。這就是MVC模式的優點

 


人類組織示例

  若是將MVC模式解釋成"外觀"、"機制"和"功能/數據"這三層結構,那麼不少人類組織也能夠經過MVC模式架構。

  好比一家商場,徹底能夠分紅三部分。一部分是倉庫,負責提供商品,這是"功能層"(或者"數據層");另外一部分是零售鋪面,負責銷售商品,這是它的"外觀層";二者之間就是"機制層",包括櫃檯和倉庫之間一切互動的機制。

  這樣區分之後,這個商場的結構就變得很是清楚,能夠針對不一樣的層進行優化,提升效率。

 


文檔信息

相關文章
相關標籤/搜索