談談J2EE開發(一)

     J2EE--java世界中永恆的話題。或許是sun的失敗,造成了J2EE世界中的無序。做了幾年的J2EE,實在懶的談了。 畢竟,技術並不是一切。工程,項目的成敗很多時候和技術無關。太多技術的爭論,分散了我們對其他問題的注意力。

    在當今的WEB開發中,MVC已經成爲事實標準。如果那個framework說不支持MVC,必定遭到一堆人的鄙視。那我們今天就談談MVC。

MVC將一個交互式應用分爲三個組件。模型包括核心功能,視圖向用戶提供信息,控制器處理用戶輸入,視圖和控制器共同組成了用戶接口。變更-傳播機制保證了用戶接口和模型之間的一致性。

語境:具有靈活人機接口的交互式應用程序。

問題:用戶接口容易改變。

限制:(1)相同信息在不同窗口有着不同的表示方式
            (2)視圖的顯示和行爲必須立即反映出對數據的操作。
             (3)用戶接口易於改變,甚至在運行期也允許改變
             (4)支持不同的式樣和感覺,移植用戶接口不影響應用程序內核。

缺點:(1)增加複雜性
      (2)視圖和控制器緊密相連。幾乎無法獨立使用。唯一例外的是隻讀視圖。
       (3)視圖,控制器與模型的緊密耦合。模型一旦改變,很可能導致視圖和控制器無效
       (4)移植用戶接口時,視圖和控制器幾乎不可避免的需要修改。
      
優點:不說了,上網一搜到處都是。


Swing是MVC的一個典型應用,拋開Swing的效率不說,還是比較成功的。個人感覺一定程度上是由於model的相對穩定性。

對於WEB來說,受限制與http協議的無狀態特性。用的MVC是一個變體,沒有實現模型到視圖的變更傳播。而WEB這種瘦客戶端應用,導致很多需要頁面實現的功能轉移到了服務器端。從而一定程度上破壞了MVC模式的優雅性。而Swing中的model的概念和J2EE中model的概念也存在了很大不同。在Swing的實現中,model指JList等數據結構,相對穩定。J2EE中,model代表業務實體。而業務實體的不確定性,導致J2EE中model的相對易變性。從而帶了更多複雜的因素。

    在很大程度上,雖然MVC有着很多優點,但MVC並不是解決J2EE應用複雜性的銀彈。面向組件的J2EE解決方案或許纔是真正值得我們所期待的。不過,當前的Tapserty,JSF還未能完成組件化的目標。只能說“革命尚未成功,同志還需努力”:)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章