MVC 框架念叨了千百遍,但是对于它的理解还是停留在概念上。
作为一种经典架构设计典范,MVC 在日新月异的软件行业却能常青数十年,一定有其独特的魅力。
一、Dao 层和 Service 层的概念
Dao 是 Data Access Object (数据访问对象)的缩写,从其名字就能看出它肯定和操作数据库相关。
Service 就是服务,从名字判断它应该比 Dao 层的抽象程度更高,但它也和数据操作相关。
二、都是操作数据,为什么需要加一层?
2.1 分工不同
Dao 层称为数据访问层,它主要涉及一些底层的、基础的数据库操作,具体到一个表就是对 Entity(实体)的 CRUD(增删改查)。
Service 层称为服务层,它专注于业务逻辑,而其中对数据库的操作则需要借助 Dao 层实现,可以认为将几种操作组合起来实现业务。
Dao 层是底层,具体到对某一张表的 CRUD,可以简单理解为有多少张表就有多少个 Dao 层。
而 Service 层可以理解为是 Dao 层的老板,通过 Service 层控制 Dao 层来实现业务逻辑。
一个 Service 层可以控制一个或者多个 Dao 层。
2.2 代码解耦
随着项目逐渐庞大,代码解耦必须提上日程。
Dao 层只负责执行 SQL 语句,具体到某一张表的增删查改。保证 Dao 层无误,Service 层就能安心关注业务逻辑。
日后进行代码迭代或项目结交时,新人也能快速上手。
当然对于一些小项目不用 Service 也是可以的,业务逻辑简单,只用 Dao 足矣。
At Last
也许理论说起来枯燥,但它确实是对实战的有效总结。从一个项目的目录结构就能看出程序员的水平。