C++设计模式
上QQ阅读APP看书,第一时间看更新

1.2.4 可分离聚合关系

可分离聚合关系也可以说成是整体与部分的关系,它与不可分离组合关系的区别是,这种整体与部分是可以分离的,也就是说部分是可以脱离整体单独存在的。UML类图中用“实线+空心菱形”表示这种关系,其中空心菱形指向整体。

例如,一所学校中有教师和学生,教师和学生都是可以作为个体存在的,用UML类图表示的学校类、教师类、学生类的关系如图1-5所示。

图1-5说明了可分离聚合关系的UML类图的组成,学校类School包含私有成员变量教师类对象集合set<Teacher>、学生类对象集合list<Student>,公有成员方法招聘教师方法RecruitedTeacher (set<Teacher>)、学生考试方法ExamStudent(list<Student>)等。教师类Teacher含有教书方法Teach(),学生类Student含有学习方法Study()和玩耍方法Play()。值得注意的是,部分是可以单独存在的,部分可以脱离整体,这种关系为可分离聚合关系。

▲图1-5 可分离聚合关系