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自己去修改


 

posted on 2014-11-04 14:46  老有所依  阅读(141)  评论(0)    收藏  举报

导航