我发现这两个例子在概念上是相同的,但一个是一个组合,另一个是聚合。
在第一个例子中,关系类学生是一种组合。
班级里有学生。没有班级,学生就不可能生存。课堂和学生之间存在着作文。
在第二个例子中,“系教授”是一种聚合。
如果大学关闭,这些系将不复存在,但这些系的教授将继续存在。
在我看来,第一个是完全错误的。注意,在这的注释部分,所以问答@TallPaul也在质疑第一个例子。我认为,在实践中,它将删除所有在每学期后入学的学生。此外,学生在初始化时可能必须由类创建,因为C++中的组合通常是作为私有属性(而不是指针)实现的。我说的对吗?第一个例子有什么意义吗?
发布于 2012-12-01 20:30:36
没有绝对的真理,这一切都取决于你正在建模的系统。您可以创建一个系统,在这个系统中,学生是仅存在于特定班级中的实例,当类被删除时,学生也是如此。例如,当您不想在班级之间存储学生信息时,这可能是有意义的。
发布于 2012-12-03 16:54:05
是的,这些都是薄弱的例子,一个班级必须有一个主题将是一个更好的例子,为作文。班级和学生之间的关系是聚合的,因为两者的寿命是不同的。
有关更详细的示例1,请参阅
https://stackoverflow.com/questions/13655342
复制相似问题