天天看点

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,负责接单(提交数据)上菜(响应数据),是顾客与后厨间的媒介(提供用户与后台程序的接口)。

各司其职(高内聚),轻松协作(低耦合),就是分层思想的目标。