【问题标题】:Using collections/containers/catalogs in Domain Models在领域模型中使用集合/容器/目录
【发布时间】:2026-02-20 04:20:06
【问题描述】:

假设我想为电影院建模。电影院将有几个房间(例如,7 个),正在播放电影。

我想知道我应该如何为这个场景设计域模型。

为什么?

我很难理解为什么在某些地方我看到第一种情况,而在另一些地方我看到类似于第二种情况。

如果不是房间,我想描绘电影与:

  1. 要出售的门票(今天)。
  2. 已经售出的门票(今天)
  3. 影院数据库中的客户
  4. 在电影院的给定房间内播放电影的时间。
  5. 您可以坐在电影院房间里的一组位置。

我应该使用目录,我应该将它们直接连接到 Cinema 概念,目标中有多个 * 吗?

谢谢

【问题讨论】:

    标签: c# java oop uml domain-model


    【解决方案1】:

    房间目录的作用是什么?

    它是否有其他属性/操作,或者它只是作为房间的容器?

    您能预见创建多个与 Cinema 实例相关联的房间目录吗?

    Room Catalog 听起来更像是您在服务层而不是域模型中看到的东西。

    如果它在结构或行为上没有贡献,那么我可能会剔除它并使用简单的关联。

    【讨论】:

    • “你能预见创建多个与 Cinema 实例相关联的房间目录吗?”啊!这是一个很好的思考点。我不认为在这种情况下我会有多个房间目录。
    • 正是我要写的答案
    • 另外,您能否进一步扩展一下“房间目录的声音,使其更像您在服务层而不是域模型中看到的东西。”什么是服务层?
    【解决方案2】:

    软件开发行业没有正确的设计或错误的设计。您可以使用第一种或第二种方法(即您可以使用任一目录或将它们直接连接到影院)。但重要的是,您应该能够证明您的设计是合理的。

    【讨论】:

    • 我同意 Upul。我要补充一点,最终你会开始对你喜欢什么产生直觉。我的 0.02 美元将用于第一个。