DDD这黑鸟大师举例
以学生选课作为例子吧。action层就不说了,只说service、domain和dao
我们先看业务:
选课服务:(学生增加选择课程、删除自己的课程、查询自己已选课程)
课程服务:(增加课程、删除课程、查询全部课程、查询指定学生)、
学生服务:(增加学生、删除学生、查询全部学生、查询指定学生)
Domain: ----
学生:(CRUD,findAll)属性:已选课程List
课程:(CRUD,findAll)属性:选择本课程的学生List
Dao:
学生实体表
课程实体表
学生-课程-关联表
嗯,包含选课、撤销等方法,都是对他自己的list进行操作的部分
对list的操作,自动触发dao的更新
不整复杂了,你就理解为删除时,调用Dao去更新数据表吧
实际上,一般是和hibernate进行关联
我一般习惯把所有行为都在service里都定义一下,贫血用惯了。
也有些人基本的CRUD就不写了
课程服务主要是体现在课程Domain里
选课服务就会涉及到两个Domain了
我解释下选课吧
选课服务,是一个综合服务的集合体;(学生增加选择课程、删除自己的课程、查询自己已选课程)
主要是 操作 学生Domain的 List;
如果选课服务,增加一个方法(查询A课程的所有参课学生),那这个方法就不能调用学生Domain完成。而调用课程Domain,查询其List就很容易了
service界定服务集合,Domain界定行为负责人和提供者,这是个一对多关系
Dao提供持久化,和Domain经常也不完全是一对一的
service界定服务集合,Domain界定行为负责人和提供者,这是个一对多关系
--- 说错了,是多对多
比如学生的list,就只能学生Domain自己去修改
比如学生自己所选课程list,就只能学生Domain自己去修改
浙公网安备 33010602011771号