首页 新闻 会员 周边 捐助

新手求助下,单位组织机构 的关系用 DDD的思想应该划分实现啊?大家指点下

0
悬赏园豆:160 [已解决问题] 解决于 2023-05-12 16:42

在学习DDD过程中了解到,DDD思想里 有 实体,值对象,领域服务,聚合,聚合根 等相关概念, 且聚合间业务的交互应通过聚合根传递交互,以达到聚合内规则的一致性,所以正常来说一个仓储上下文对应一个聚合根,一个聚合内的实体,通过聚合根的上下文提交存储达到事务一致性。
领域服务按分层来说可分有
1.Domin.Service 领域层服务,自己的理解是 无关业务状态的方法,用于协调一个聚合内的实体间的相互引用的方法。

2.Applicatin.Service 应用层服务,自己的理解是 面向用例的,多个聚合间相互作用协调的方法

以上是自己的一些理解。 现实系统中,到底怎么划分以下开发场景的概念,哪位大佬指点下:

单位组织机构,包含对象有:【单位】>【园区】>【楼栋】>【楼层】>【房间】>【床位】
其中【房间】对象还包含着 【房间类型】 概念, 【房间类型】影响着【床位】

之间的结构关系就是:向下包含的树形结构。

根据页面上的业务场景大概有:
1.创建以上任意的一个对象,且同时创建了 它 层级往下的对象,即如:【创建楼栋】操作,要同时生成楼栋以下的 楼层,房间,床位。

2.单个新增【房间】,【床位】等操作

脑子里的疑惑:
1.以上对象究竟是不是一个聚合? 如果是一个聚合,那个是聚合根?假设【单位】对象是聚合根, 仓储以聚合根出发,那怎么可以做到 新增单个 房间,床位。况且 【房间】这个对象所包含的概念还有很多, 如果 房间类型, 房间费用 等等。统一通过【单位】这个聚合根维护感觉不太合理

2.如果以上的几个对象都是 聚合根,各种有自己的仓储上下文, 那新增对象同时包含下级对象时,就要多个聚合间协作,按理说 就要用 服务方法来做, 放在 Applicatin.Service 应用层服务里, 但感觉 就会很臃肿,该层有大量引用, 且 事务一致性 也有影响。

3.不怎么理解 领域服务的概念 什么叫 不影响 对象状态 的行为 ? 什么叫对象状态。懵逼

啰嗦了点,请大家教教我,或者有好的文章推荐推荐,当然直接上Demo 代码更是感激不尽

wewehahayuyu的主页 wewehahayuyu | 初学一级 | 园豆:30
提问于:2020-01-01 17:13
< >
分享
最佳答案
0

别去较真这种玩意,扯那么多无用的概念还不如把面向对象学学好

收获园豆:100
56180825 | 小虾三级 |园豆:1749 | 2020-01-01 17:52
其他回答(1)
0

不知道,最好公司有实际项目学习,否则...确实不好理解,然后,学了也无用武之地

收获园豆:60
猝不及防 | 园豆:2878 (老鸟四级) | 2020-01-02 10:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册