Dar*_*Zon 5 c# oop composition aggregation
我正在处理这个问题.我正在创造数学问题,每个人都有回应.例如.
我的大问题是.
如何在类问题和响应之间建立关系.如果这应该是一个关联,聚合或组合,我也在处理.
谢谢.
编辑:很好,这是一个组合.最后,根据上述句子,我该如何表现设计?这些是我的一些想法,但我想我错了.
public class Question
{
public Response _response;
//public List<Response>
//public Dictionary<string, Response>
public Question()
{
this._response = new Response();
}
}
public class Response
{
}
Run Code Online (Sandbox Code Playgroud)
小智 22
关联是一种关系,所有对象都有自己的生命周期,没有所有者.让我们举一个教师和学生的例子.多个学生可以与单个教师相关联,并且单个学生可以与多个教师相关联,但是对象之间没有所有权,并且两者都有自己的生命周期.两者都可以独立创建和删除.
聚合是一种特殊的关联形式,其中所有对象都有自己的生命周期但有所有权:子对象不能属于另一个父对象.让我们举一个部门和老师的例子.单个教师不能属于多个部门,但如果我们删除部门,教师对象将不会被销毁.我们可以将其视为"有一种"关系.
组合又是聚合的一种特殊形式,我们可以将其称为"死亡"关系.它是一种强大的聚合类型.子对象没有生命周期,如果删除父对象,则还将删除所有子对象.让我们再来看一下House和房间之间的关系.房子可以包含多个房间,房间没有独立的生活,房间不能属于两个不同的房子.如果我们删除房子,它的房间将被自动删除.让我们再看一下问题和选项之间的另一个关系示例.单个问题可以有多个选项,选项不能属于多个问题.如果我们删除一个问题,其选项也将被删除.