Удержание другого класса означает, что класс связан с другим классом через родительские дочерние отношения. Например, у Пути есть список точек. Путь является родителем списка точек, который является родителем отдельных точек.
Агрегирование означает использование разных классов и размещение их за интерфейсом, чтобы они выглядели как один класс. Например, FileDialog будет иметь несколько классов кнопок, класс ввода текста, класс списка / дерева и так далее. Но для остальной системы у нее просто были методы, которые нужно активировать, возможно назначить имя файла по умолчанию и получить остальные.
Тот факт, что он состоит из всех других классов, не имеет значения для других классов, использующих его в качестве файлового диалога. Однако он работает путем объединения всех классов для выполнения ожидаемого поведения.