![]() |
1
1
我得说:
注:
Edge可能根本不是类:相反,Edge可能只是节点的实例。 |
![]() |
2
1
从你的描述来看,它听起来像UML 图表应具有:
聚合和合成的区别可以用生命周期来考虑。如果两个对象的生命周期是相同的,因为它们相互依赖,那么这种关系就是复合关系,否则就是聚合关系。 |
![]() |
3
1
--关联(树->节点)两端的重数为1..1。对吗?
你还应该考虑Edge是否真的是一个类。如果不需要存储关于边的任何类型的信息(即,它们没有标记),我只需要将边建模为节点之间的二进制关联 |
![]() |
4
0
面向对象中树结构的处理由 Composite Design Pattern . 你似乎对聚合和合成的区别有点困惑。使用复合当整个和部分的生存期相等时,在部分的生存期不同的地方使用聚合,即从集合中添加和/或删除部分。 |