上QQ阅读APP看书,第一时间看更新
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 单向关联关系