MVC是三個單詞的首字母縮寫,它們是Model(模型)、View(檢視)和Controller(控制)。
1)最上面的一層,是直接面向終端使用者的"檢視層"(View)。它是提供給使用者的操作介面,是程式的外殼。
2)最底下的一層,是核心的"資料層"(Model),也就是程式需要操作的資料或資訊。
3)中間的一層,就是"控制層"(Controller),它負責根據使用者從"檢視層"輸入的指令,選取"資料層"中的資料,然後對其進行相應的操作,產生最終結果。
下面是一個斯坦福的經典圖
這三層是緊密聯絡在一起的,但又是互相獨立的,每一層內部的變化不影響其他層。每一層都對外提供介面(Interface),供上面一層呼叫。這樣一來,軟體就可以實現模組化,修改外觀或者變更資料都不用修改其他層,大大方便了維護和升級。
但是MVC有他比較嚴重的問題**,隨著業務越來越複雜,檢視互動越複雜,導致Controller越來越臃腫,負重前行。髒活累活都它幹了,到頭來還一點不討好。福報修多了的結果就是,不行了就重構你,重構不了就換掉你。**
參照地址
同時這種時候也容易造成model層的臃腫。因為為了迎合controller層的簡潔 導致大量的類的大量依賴,當然可以通過優秀的程式設計師來解決這個問題