对称关联

在对称链接中,链接两端的对象彼此知道对方。因此,会定义两个角色。

如下图中所显式的样本对象模型图,显式了 theFurnacetheRooms 之间的对称关联。该关联是一个对多链接,其中一个火炉服务三个房间。

角色实施为:

链接数据成员

缺省情况下,链接带有单个实例。到单个实例的链接称作标量。标量关系生成到对象的结构的数据成员中,该对象的名称与角色相同且类型为指向其他对象的指针。例如,类型指针指向 FurnaceitsFurnace 成员是生成作为 Room 结构以表示 RoomFurnace 的链接:

struct Room {
    /***    User implicit entries    ***/
    struct Furnace * itsFurnace;
};

链接访问器

链接访问器返回指向关联对象的指针。其名称的格式为 <object>_get_<rolename>()

例如,会为 itsFurnace 角色生成以下访问器:

struct Furnace * Room_get_itsFurnace(const Room* 
    const me);

以下是链接访问器的实施:

struct Furnace * Room_get_itsFurnace(
    const Room* const me)
{
    return (struct Furnace * )me->itsFurnace;
}

链接增变器

链接增变器设置指向关联对象的指针。如果链接是对称的,增变器还会设置互利链接。

可以为链接增变器生成最多三个方法:


反馈