关联,聚合和组合物(association, aggregation and composition

2019-07-30 04:33发布

我处理这个问题。 我创建的数学题,每一个都有响应。 例如。

  • 如果我的问题是关于“5倍+ 15 = 2的结果呢?” ,我会等待只是一个答案(作为整数)。
  • 如果我的问题是关于说:“给我区与这种形状的permiter”,我会等待两个答案(双打)。
  • 在一个又一个,我会等待响应作为一个字符串
  • 和anothers,我可以有几个答案,或与各种数据类型的反应。

我最大的问题是。

如何将这些类问题和响应之间的关系。 我也正在处理这应该是一个关联,聚合或组合。

谢谢。

编辑:太好了,这是一个成分。 最后一件事,根据上面的句子,我怎么能代表设计? 这些都是一些想法我有什么,但我想我错了。

public class Question
{
    public Response _response;
    //public List<Response>
    //public Dictionary<string, Response>

    public Question()
    {
        this._response = new Response();
    }
}

public class Response
{
}

Answer 1:

协会是一个关系,其中所有的对象都有自己的生命周期和没有主人。 让我们老师和学生的一个例子。 多个学生可以与单个关联老师和一个学生可以与多个教师交往,但有对象和都有自己的生命周期之间没有所有权。 两者都可以创建并单独删除。

聚合是关联的一种特殊形式,所有物体都有自己的生命周期,但有一个所有权:小时候对象不能属于另一个父对象。 让我们以部门和教师的例子。 单老师不能同时属于多个部门,但如果我们删除该部门的教师目标不会被破坏。 我们可以把它作为一个“有”的关系。

组成又是聚合的一种特殊形式,我们可以称这是一个“死亡”的关系。 这是一个强大的集聚类型。 子对象没有自己的生命周期,如果父对象被删除所有子对象也将被删除。 让我们再次拿房子和房间之间关系的一个例子。 房子可以包含多个房间,没有独立生活的房间和一间不能属于两个不同的房子。 如果我们删除的房子它的房间将被自动删除。 让我们的问题和选项之间的另一个例子关系。 单问题可以有多种选择和选项不能属于多个问题。 如果我们删除问题的选项也将被删除。



Answer 2:

在这两个之间的关联。

问题组成的答案。

这样做的原因是 - 聚合和组合都是关联。 物是指子对象的寿命取决于它的父 - 子不能没有父存在。

这也正是在这里你的情况。 于是 - 组合物。



文章来源: association, aggregation and composition