0

uml中的关联和组合关系有什么区别..
例如..

class Student
{
Prof p;
//other features..
};
class Prof
{
Student s;
//other features..
};

上面的代码是c ++中组合关系的一个例子。
同样,关联关系的编码是什么......?
在 uml 中工作时如何实现这一点以及如何找到应该首选的关系?
以同样的方式如何在这种关系中实现多重性概念......?
用一些尽可能详细的实时例子来解释这件事.....
提前谢谢你..

4

2 回答 2

1

组合是一种特殊的二元关联

如果 A 由 B 组成,一个 A 实例负责创建和销毁 B 实例;这也意味着 B 的一个实例最多可以构成 A 的一个实例。

在您的代码中,两个类都使用组合,但是由于存在循环组合(学生需要教授,教授需要学生)而出现错误。

通常一个教授与许多学生有关,一个学生与许多教授有关;在这种情况下,您可以在重数大于 1 的两个类中使用聚合。

class Student;  // Forward declaration

class Prof {
    std::vector<Student*> _students;
};

class Student {
    std::vector<Prof*> _profs;
};
于 2014-08-04T12:51:42.477 回答
0

另请参阅聚合、组合和依赖之间的区别是什么?https://stackoverflow.com/search?q=aggregation+and+composition

于 2014-08-04T13:09:29.013 回答