Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Паттерны проектирования
Форум на CrossPlatform.RU > Разработка > С\С++
AD
Читал книжку Э.Гамма, Р.Хелма и др. "Паттерны проектирования". Так там используются два термина, разницы которых я лично не вижу, это Композиция и Агрегирование. Объясните, пожалуйста, простым языком, в чем разница-то?
AD
Так кто-нибудь знает ключевое различие этих терминов? :)
Andrew Selivanov
Цитата(AD @ 28.5.2008, 11:40) *
Так кто-нибудь знает ключевое различие этих терминов? :)

Агрегация - когда целое содержит часть (агрегат)
Композиция - когда целое содержит часть и контролирует время жизни этой части
ЙаМайскЫйПчОЛ
то Andrew Selivanov
Агрегирование подразумевает, что один объект владеет другим или несет за него ответственность.
В общем случае мы говорим, что объект содержит другой объект или является его
частью. Агрегирование означает, что агрегат и его составляющие имеют одинаковое время жизни.
Агрегированный объект - объект, составленный из подобъектов. Подобъекты называются частями агрегата, и агрегат отвечает за них.

Композиция объектов - объединение нескольких объектов для получения бо-
лее сложного поведения.

;) :blink:

то AD

Композиция ОБЪЕКТОВ
Агрегированный ОБЪЕКТ.

и как следствие принципиальная разница в интерфейсах. я так думаю +
Композиция - больше, логическое объединение, а Агрегирование - жестко функциональное.
AD
Цитата(ЙаМайскЫйПчОЛ @ 11.7.2008, 9:39) *
то Andrew Selivanov
Агрегирование подразумевает, что один объект владеет другим или несет за него ответственность.
В общем случае мы говорим, что объект содержит другой объект или является его
частью. Агрегирование означает, что агрегат и его составляющие имеют одинаковое время жизни.
Агрегированный объект - объект, составленный из подобъектов. Подобъекты называются частями агрегата, и агрегат отвечает за них.

Композиция объектов - объединение нескольких объектов для получения бо-
лее сложного поведения.

;) :blink:

то AD

Композиция ОБЪЕКТОВ
Агрегированный ОБЪЕКТ.

и как следствие принципиальная разница в интерфейсах. я так думаю +
Композиция - больше, логическое объединение, а Агрегирование - жестко функциональное.

Спасибо! Кажется, врубился. Читал раз 5, но в итоге понял. :) Объяснение толковое (мне понравилось)! ;) :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.