领域模型,不通模型之间的关系 如何处理 2009-03-04 vic732 你们好,目前正在做一个电子商务订单系统,里边存在了很多个模块,比如 用户,订单这应该就是两个领域模型, 但是一个用例,删除用户,需要校验他是否有没有结款的订单,这样的化如果把这个逻辑写在用户模块的删除用户方法中,就产生了模块模块之间的耦合,请教各位这种问题应该怎样解决?
yinyousong 2009-03-04 15:38 用户与订单应该是1:1的关系,很显然,校验订单是否结款属于订单这个类. 删除用户是属于围绕用户模型的方法,不是属于用户的行为,是Repository中的对象生命周期服务. 解决方案:在order repository 中增加 判断此用户是否有未结款的Order。 在User repository 进行删除操作。
vic732 2009-03-05 00:02 用户与订单 是 1:N 的关系,一个用户可以有多个订单,另一个问题,在user repository 删除的时候,是否调用用户订单 order repository 中判断用户是否有未结款订单的判断
yinyousong 2009-03-05 15:04 在设计的是,主要原因是由主要的模型是Order,对象的游历关系是从Order-->User,很自然,他们便是1:1关系了。 对于Repository,主要负责对象重建工作,可在repository中建立一个获取改用户所有订单方法,然后在Service层中进行判断,最后UserService中,调用OrderService判断用户是否未结款,进行删除操作. 总体来讲UserService(删除用户服务)--->OrderService(判断是否结款)--->OrderRepository(获取该用户未结款订单) UserService--->UserRepository(调用DB进行删除);
vic732 2009-03-06 09:16 那么在模型当中又做什么工作呢=---------------------------------=没说明白,模型自己又有一些什么方法呢, 增删改查 通过 repository 做了,service 又做了业务了,model 自己感觉不需要做什么事情了