天天看點

java為什麼要分為service層,dao層,controller層?

在Java裡面,開發都要遵循一套模式:

  MVC

  M:  Model(模型,即JavaBean)

  V:   View(視圖,及頁面)

  C:   Controller (控制層,即與前端互動的類)

java為什麼要分為service層,dao層,controller層?

然後就是service、dao和controller:

  controller:控制層,接收前端傳過來的資料

  service:業務層,處理制層傳過來的資料

  dao:資料通路層,即把業務層傳過來的資料存放在資料庫

這樣的設計都是友善開發中的維護,假如你寫程式随便寫,名稱随便定義,然後再改bug的時候,你會讓開發者生不如死。然後就是層與層之間互相不幹擾,自己處理自己的事情

通俗點講,就是:

如果去飯店吃飯,不可能找廚師點菜吧?

小工負責食材存取,洗菜切肉;

廚師負責烹饪;

跑堂負責接待食客并與後廚溝通。

這就是精典的分層展現。如果一個廚師既負責跑堂,又負責烹饪。那這個飯店的管理一定非常混亂吧。

小工就是DAO,從食材庫裡(資料源)取出食材(原始資料),進行簡單處理(資料對象化)。

廚師就是Service,找到小工(DAO),擷取各種半成品(對象化資料),加工成顧客需要的菜肴(最終資料)。

跑堂就是Controller,負責接單(送出資料)上菜(響應資料),是顧客與後廚間的媒介(提供使用者與背景程式的接口)。

各司其職(高内聚),輕松協作(低耦合),就是分層思想的目标。