面向对象-聚合(Aggregation)关系

420 阅读1分钟

在面向对象编程中,聚合关系(Aggregation)表示整体对象包含部分对象,部分对象可以被多个整体对象共享。聚合关系是一种弱拥有关系,整体对象和部分对象之间是 “has-a” 关系,但部分对象并不是整体对象的一部分。 在聚合关系中,整体对象通常具有一个集合来管理部分对象,这样它就可以轻松地添加、删除或替换部分对象。

例如,考虑一个学校类 School 和一个班级类 Class

class Class:
    def __init__(self, name, teacher):
        self.name = name
        self.teacher = teacher

class School:
    def __init__(self, name):
        self.name = name
        self.classes = []

    def add_class(self, c):
        self.classes.append(c)

在这个例子中,School 类包含多个 Class 对象,因此它们之间存在聚合关系。整个学校是整体对象,班级是部分对象。学校可以添加、删除或替换班级,同时一个班级也可以被多个学校共享。