今天看了一篇名為深入理解MVC的文章,文章中總結和說明了什么是 MVC,也談了他對於 MVC 的認識和理解。是一篇很好的文章,讀完后讓我對 MVC 有了一種新的認識。
MVC 即 Model、View、Controller 即模型、視圖、控制器。
在 web 項目中 View 層是界面,Controller 層是業務邏輯,Model 層是數據庫訪問。這是我之前對於 MVC 的大致的了解,還有一個一提到 MVC 就會想到的名詞就是 SpringMVC,畢竟天天在用它不是嗎?
MVC 要實現的目標是將軟件用戶界面和業務邏輯分離以使代碼可擴展性、可復用性、可維護性、靈活性加強。
的確,在沒有這種體系架構之前(雖然我沒有經歷過),我想代碼界應該也是處於一種混沌的狀態吧。或許現在任然有非常多的代碼體系也處於這種混亂之中。處於焦油坑之中的代碼數不勝數,而如何走出焦油坑是一種難以回答,或者是無法回答的問題。在質量、成本和周期的維度下,一個項目的走向或許誰都無法掌握,隨着業務的增多,項目的擴大,交付時間的臨近。原本有着很好體系結構的代碼也會隨之混沌。我們竭力把一切活動技術化、條理化,而結果只是加快了能量轉化和熵的過程。如何有效的解決這一問題始終是我追尋的答案。
控制器的作用就是這么簡單, 用來將不同的View和不同的Model組織在一起,順便替雙方傳遞消息,僅此而已。
薄的 Controller 層往往可以讓代碼的復用性更強,可讀性也會相應提升,前提是類名要有可讀性。代碼是寫給人看的,其次才是機器。
如果僅僅是復用代碼,並不是我們使用繼承的理由。
其實這里我並不是很能理解為什么一定要對繼承那么苛刻,有的時候多一些冗余會少很多的麻煩。
組成MVC的三個模式分別是組合模式、策咯模式、觀察者模式,MVC在軟件開發中發揮的威力,最終離不開這三個模式的默契配合。
說起 Java 漫畫中總是有這么一副是用來嘲笑那復雜的設計模式的。GoF 總結和歸納的 23 種設計模式在 Java 框架中被廣泛應用,使得框架異常的好用。如果不是有那么多開源的框架和技術人員在背后默默的支持着 Java 這門語言,它不會像現在這樣流行。但是很有意思的是在這門如此注重模式的語言中,項目中卻很少使用。這是說明我還是一個初級程序員的最好證明。
本文由個人 hexo 博客 co2fe.com 遷移
date: 2018-04-24 21:33:34