【问题标题】:Application of Aggregation and Composition聚合和组合的应用
【发布时间】:2015-12-08 16:10:57
【问题描述】:

好的,我了解组合和聚合。

聚合是可以存在于“父”类之外的任何对象。组合意味着当父对象死亡时,它所组成的对象也会死亡。

好的,我有一个测试应用程序。一个类别可以有视频。一个问题也可以有视频。一个类别由许多问题组成。我试图弄清楚什么是最好的模型,因为两者都可以有视频,但他们可能不会分享相同的视频。但在某些情况下,它们可能会。

对于应试用例,除了 Category 或 Question 对象外,不会观看这些视频。所以我可以将它们都设计为组成视频的成员。我不确定这是否是一个好的设计。我可以在 Category 中编写它们,但通过 Question 对象的方法提供它们。在这种情况下,Question 将是 Video 成员变量的兄弟,并且会简单地使用它。这将是一个聚合。但是,所有视频都不是类别视频,所有视频都不是问题视频。有时他们可以两者兼而有之。

所谓类别视频,是指用户在参加考试前观看视频。因此,视频属于类别级别,而不是问题级别。

问题视频是人们观看然后回答有关问题的视频。在这种情况下,视频更像是您观看并尽力回答问题的人物。

在某些情况下,它们可以两者兼而有之。

有没有更好的设计方法?传递视频似乎有很多可能没有必要的耦合。

谢谢!

【问题讨论】:

    标签: aggregation composition


    【解决方案1】:

    您可以创建一个关联类,可以存储 Video id、Associaton Type=Category/Question/Both、AssociateIds(a list)

    在这种情况下,您不需要使用聚合或组合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多