【发布时间】:2016-07-27 12:31:01
【问题描述】:
在我的家庭项目中,我在确定域对象的类型时遇到了问题。
领域:巴士时刻表
有界上下文:路线(公共交通基础设施,ctx1)、时间表(调度,ctx2)
对象:
Station - 描述公交车站
Route(ctx1) - 一组站点(Route waypoints)
Line (ctx1) - 描述总线。包含列表。
Schedule(ctx2) - 从 Route 的航路点出发的命名集合。
例如:一条公交线路 25A 有两条路线 [{st1, st3, st20}, {st20, st15, st3, st1}] 和 2 个时间表(schedule 1 - route 1, sch2- r2)附加到这 2 个路线。
毫无疑问,我将 Line 和 City 确定为 DDD 实体,聚合根。此外,我决定将 Routes 放入 Lines 中,因为它们在 Line 之外没有任何意义,并且它们的生命周期 == Line 的生命周期。看起来还是不错的。
下一步是定义调度域对象。我想把它与公共交通基础设施分开,所以我把它作为一个实体放在另一个环境中。问题是现在我需要将它附加到没有标识符的路由上。
我的想法:
将时间表放入路线。为什么它不是一种选择:线条变胖;创建 ctx1 和 ctx2 的超级上下文
-
将 Route 设为实体。为什么它不是一个选项(我认为......):虽然不难想象带有一些标识符(例如名称)的路线,但很难想象公交线路之外的公交路线。
也许我做错了什么?
【问题讨论】:
标签: java domain-driven-design software-design