個人對三層架構的看法

java web開發當中,有這麼三層:controller、service、dao

分別爲表現層、業務邏輯層以及數據訪問層。

這樣分層的好處有很多,出了問題易於調試,或者便於團隊合作等等。

最重要的是,可以隨時換掉其中的某一層而不影響其他層,這都是借鑑於早期的程序設計經驗,計算機網絡體系也是這麼設計的。

在我初學時,總是認爲service層就是個累贅,認爲它只是對請求的轉發,但是隨着學習的深入、開發更復雜的應用,service層的作用就體現出來了,比如對數據的校驗,或者可以調用其他service層的服務,很多複雜的邏輯都是在service 層當中完成的。

對於dao層,一般來說這層都是提供對數據庫的訪問接口,但並不侷限於數據庫,有些應用壓根就不會用到數據庫,它只是一種抽象。

表現層,它則可以控制前兩層的數據是應該以怎樣的形式進行展現,可以通過jsp或者json、xml等等,這些都可以被稱作視圖。

但是在實際開發當中,不應該死守這三層架構,不應該什麼系統都要給他搞個三層。

無論解決什麼事,應該使用更簡單的方案。

比如我現在使用的這個博客系統,就是使用的三層架構,結果本來這麼一個簡單的系統,代碼搞得無比複雜,現在半年過去了,連維護都是一個大問題。

但是有些事,自己搞搞沒問題,如果在一個大團隊中,還是要遵守相應的規範,不能瞎搞。

你可以盡情地在自己的項目中使用各種各樣的新特性,什麼lambda表達式,stream api 儘管用,

又或者只在controller調用dao,還是在servlet當中一氣呵成寫個又臭又長的代碼,都沒有問題。

三層架構,的確是一個很好的通用解決方案,但還是要適時而變,找到適合自己的。

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