下图是从StarUML工具界面截下来的,从上往下依次表示UML的关系:关联、单向关联、聚合、组合、泛化、依赖和实现。

图3 UML关系集
3.1 关联、聚合、组合
关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。聚合和组合是更强的关联,表示整体和部分的关系。
聚合的整体不负责部分的生命期,组合的整体负责部分的生命期。关联关系需根据实际场景来识别,例如军队和士兵的关系一般可理解为聚合,士兵退役了就和军队脱离聚合关系了。但是,如果是打仗时,士兵们必须生死与共,军队没了则士兵命也没了,则可理解为组合。
UML示例:

图3-1 关联、聚合、组合
C代码示例:
//A关联/聚合/组合了B
struct A{
struct B *b;
void (*Create)(B *b); //方式1
};
struct A{
struct B *b;
void (*SetB)( B *b); //方式2,单B
};
struct A{
struct B *bset[N];
void (*RegisterB)(B *b); //方式3,B集
};

本文详细介绍了C代码如何与UML对象模型进行映射,涵盖关联、聚合、组合、泛化、依赖和实现等关系。通过实例分析,如Linux内核中的结构体和继承,解释了不同关系在C语言中的表现形式,帮助读者理解这两种表示方式之间的转换。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



