Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ С\С++ _ Паттерны проектирования

Автор: AD 27.5.2008, 22:49

Читал книжку Э.Гамма, Р.Хелма и др. "Паттерны проектирования". Так там используются два термина, разницы которых я лично не вижу, это Композиция и Агрегирование. Объясните, пожалуйста, простым языком, в чем разница-то?

Автор: AD 28.5.2008, 10:40

Так кто-нибудь знает ключевое различие этих терминов? :)

Автор: Andrew Selivanov 28.5.2008, 13:45

Цитата(AD @ 28.5.2008, 11:40) *
Так кто-нибудь знает ключевое различие этих терминов? :)

Агрегация - когда целое содержит часть (агрегат)
Композиция - когда целое содержит часть и контролирует время жизни этой части

Автор: ЙаМайскЫйПчОЛ 11.7.2008, 8:39

то Andrew Selivanov
Агрегирование подразумевает, что один объект владеет другим или несет за него ответственность.
В общем случае мы говорим, что объект содержит другой объект или является его
частью. Агрегирование означает, что агрегат и его составляющие имеют одинаковое время жизни.
Агрегированный объект - объект, составленный из подобъектов. Подобъекты называются частями агрегата, и агрегат отвечает за них.

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

;) :blink:

то AD

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

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

Автор: AD 22.7.2008, 8:45

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

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

;) :blink:

то AD

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

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

Спасибо! Кажется, врубился. Читал раз 5, но в итоге понял. :) Объяснение толковое (мне понравилось)! ;) :)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)