對稱的關聯

使用對稱的鏈結,鏈結兩端的物件會辨識彼此。因此,會定義兩個角色。

如下圖所示的範例物件模型圖,顯示 theFurnacetheRooms 之間的對稱關聯。 此關聯是個對多鏈結,其中一個暖氣爐服務三個房間。

角色會實作為:

鏈結資料成員

依預設,一個鏈結搭配單一實例。連至單一實例的鏈結稱為純量。純量關係會產生至物件結構中的資料成員,物件名稱與角色名稱相同,而類型是指向其他物件的指標。例如,指向 Furnace 類型指標的 itsFurnace 成員會產生作為 Room 結構的成員,以代表 Room 的鏈結連至 Furnace

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;
}

鏈結轉換元

鏈結轉換元設定指標指向關聯的物件。如果鏈結是對稱的,轉換元也會設定相互的鏈結。

針對鏈結轉換元可以最多產生三個方法:


意見回饋