聚合和组合的应用

时间:2015-09-12 02:42:20

标签: aggregation composition

好的,我理解作文和聚合。

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

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

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

按类别视频,我的意思是用户在参加测试前观看视频。因此,视频属于类别级别,而不是问题级别。

问题视频是一个人观看然后回答有关问题的视频。在这种情况下,视频更像是您所看到的数字并尽可能地回答问题。

在某些情况下,他们可以兼得。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以创建一个可以存储视频ID的关联类,Associaton Type = Category / Question / Both,AssociateIds(列表)

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