1.2.5 關聯關系
關聯關系顧名思義就是一個類與另一個類在對象之間的聯系,聯系可以是雙向的,也可以是單向的。在UML類圖中,雙向關聯關系用沒有箭頭的實線表示,單向關聯關系用“實線+箭頭”表示,箭頭指向被關聯的類。
例如,醫生與病人之間的關系,個體與自身手機號、身份證號之間的關系。在代碼中,將一個類的對象作為另一個類的成員變量來達到兩者關聯的目的。
其中,醫生與病人雙向關聯關系的UML類圖如圖1-6所示。

▲圖1-6 雙向關聯關系
圖1-6說明了雙向關聯關系的UML類圖的組成,醫生類Doctor和病人類Patient為雙向關聯,醫生類Doctor包含私有成員變量病人類對象集合list<Patient>、醫生姓名doctorName和公有類方法醫生診斷方法Diagnosis();病人類Patient包含私有成員變量醫生類對象集合list<Doctor>、病人姓名patientName和公有類方法病人看病方法SeeADoctor();Doctor類和Patient類分別包含對方的類對象作為成員變量,從而實現雙向關聯關系。
其中,個體與手機號、身份證號單向關聯關系的UML類圖如圖1-7所示。
圖1-7說明了單向關聯關系的UML類圖的組成,個體類People包含手機號類Phone和身份證號類Identity這兩個私有成員變量;People類實現個體標志方法IdPeople(),Phone類實現設定手機號方法SetPhoneNum(int* pn),Identity類實現設定身份證號方法SetIdNum(int* in);People類指向Phone類和Identity類,實現了一種單向的關聯關系。

▲圖1-7 單向關聯關系
推薦閱讀