Action 主要的功能就是组织 service 的,比如你要做权限验证,那么请求会被 Action 获取,那么如何验证呢?Action 可不管他要问 service 该怎么办。当得到 service 返回的结果后根据结果判断下一跳是哪里(如果验证用户存在且密码正确则跳转到登录成功的页面,反之则回跳到登录页面)
现在轮到 service 了,ta 是管理业务的,延续上面的例子的话,action 问这个用户是否合法有效的时候 sevice 就去调用 dao 看看 dao 能不能找到相应的记录,当业务受到 dao 的结果后就根据得到的记录回答 action 的问题“ 用户是否合法有效”
最后就是 dao 喽,作为工作于最“ 基层” 的部分,ta 倔强的只去实现增删查改,甚至这些增删查改之间有什么关系?dao 一概不问,爱谁是谁。dao 很倔强,ta 只保证和数据库的关系良好,
归纳一下,Action 就是管理业务(servcie)调度和管理跳转的。service,ta 是管理具体的功能的,这个很容易和 Action 混淆,你可以这样理解,Action 只负责管理,而 service 负责实施,dao 只完成增删查改,当然你可以 1-n,n-n,1-1 关联,模糊 、动态 、子查询都可以。但是无论多么复杂的 dao,ta 只是封装增删查改。至于增删查改如何实现一个功能,ta 是不管的。
总结这三者,可以举个例子,action 像是服务员,顾客点什么菜,菜上给几号桌,都是 ta 的职责;sevice 是厨师,action 送来的菜单上的菜全是 ta 做的;dao 是厨房的小工,和原材料打交道的事情全是 ta 管。所以小工(dao)的工作是要满足厨师(service)的要求,厨师要满足服务员(action)转达的客户(页面用户)的要求,服务员自然就是为客户服务喽。
本文是张老师给我解释的,张老师博客链接 http://user.qzone.qq.com/953133372