领域模型,不通模型之间的关系 如何处理

09-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:11
那么在模型当中又做什么工作呢

猜你喜欢
2Go 1 2 下一页