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

角色會實作為:
依預設,一個鏈結搭配單一實例。連至單一實例的鏈結稱為純量。純量關係會產生至物件結構中的資料成員,物件名稱與角色名稱相同,而類型是指向其他物件的指標。例如,指向 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;
}
鏈結轉換元設定指標指向關聯的物件。如果鏈結是對稱的,轉換元也會設定相互的鏈結。
針對鏈結轉換元可以最多產生三個方法:
例如,針對 itsFurnace 角色產生下列轉換元:
void Room_setItsFurnace(Room* const me, struct Furnace
*p_Furnace);
這是鏈結轉換元的實作。Furnace 與 Room 之間的鏈結是對稱的,所以轉換元也會設定相互的鏈結:
void Room_setItsFurnace(Room* const me, struct Furnace
*p_Furnace) {
if(p_Furnace != NULL)
Furnace__addItsRoom(p_Furnace, me);
Room__setItsFurnace(me, p_Furnace);
}
如果鏈結是對稱的關係,第一個轉換元會呼叫第二個,其名稱中 "set" 單字前面有兩個底線:
void Room__setItsFurnace(Room* const me, struct Furnace
*p_Furnace) {
if(me->itsFurnace != NULL)
Furnace__removeItsRoom(me->itsFurnace, me);
Room___setItsFurnace(me, p_Furnace);
}
如果鏈結是對稱的關係,第二個轉換元會呼叫第三個,其名稱中 "set" 單字前面有三個底線:
void Room___setItsFurnace(Room* const me,
struct Furnace * p_Furnace) {
me->itsFurnace = p_Furnace;
if(p_Furnace != NULL) {
NOTIFY_RELATION_ITEM_ADDED(me, Room, Furnace,
"itsFurnace", p_Furnace, FALSE, TRUE);
}
else {
NOTIFY_RELATION_CLEARED(me, Room,"itsFurnace");
}
}
同時,這三個作業會設定 Furnace 與 Room 之間的對稱鏈結。