從MVC講到多層架構

        最近瀏覽技術論壇時,偶爾遇到幾篇討論MVC以及時下比較流行的PO、VO話題的貼子。(http://forum.javaeye.com/viewtopic.php?t=627) 看到大家這樣踊躍的發言我也想湊湊熱鬧。可惜,這個論壇註冊後過10天才能發言... 那就到這裏來寫吧。。。

        我發現,這些貼子都是討論VO 是 M 還是 V 的東西。其實,我覺得沒有必要這樣。MVC這個模型理論出現有這樣一個背景。就是當時很多應用,把顯示、數據存儲、模塊定義等東西,都混在一個模塊(頁面)中,導致這樣的應用難以維護和複用。MVC理論的提出就是爲了在,這樣的情況下使開發人員,注意到把應用分解。MVC提出時本身並沒有非常精確的定義。如果你上網查找,準會得到一堆看似相同又不太一樣的令人抓狂的解釋與定義。不過我還是要在這裏定義一下他在這裏的意思。根據,上面提到的背景,我認爲當時提出的MVC。只是把應用簡單的安作用分解開。

        C(Control)控制,表示控制部分(比如session bean ),但是我認爲控制並不是只是指某些類。他小到可以指一個if語句,大到可以指一個組件,當然也應該可以指業務控制流程。
        M(Module)模型、模式,這個是定義最模糊的部分。根據我的理解,因該指業務相關或整體結構。比如,整體的業務結構,某個數據結構,數據字典等。
        V(View)視圖,表示直接顯示給用戶看或者與用戶直接交互的部分。

        MVC提出的初衷很好,可惜的是他的定義過於模糊(也或者是學習者沒有正確理解,比如我:>),不可量化比較。導致,一些號稱是MVC的應用或框架還是有許多缺陷。在我看來,MVC並不是分層概念是他最大致命傷。

        MVC之後,並沒有正式提出跟有效的模型概念。但是,我以爲開發人員現在所謂的多層應用的概念已經超越了MVC模型的概念,雖然它很大程度上源於MVC模型思想。多層應用的概念,是分層概念,雖然現在也沒有明確的定義,不過它的實現可以量化比較出優劣。量化的尺度就是,層次與層次之間的耦合的緊密度。又,所謂的一個層次對其他層次的是否有“入侵“,以及入侵的程度。。。(待)

    (以上純屬個人愚見)
發佈了39 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章