1
UML SysML и пр. / Агрегация и Композиция
« : 18 Января 2012, 23:07:36 »
Брюс Экель в своей книжке философия java пишет
"Если мы составляем новый класс из уже существующих, этот способ называется композицией (если композиция выполняется динамически, она обычно именуется агрегированием)"
Может кто-нибудь пояснить этот отрывок? тут наверное надо сознание раскрыть чтобы пришло понимание. Что такое композиция которая выполняется динамически? И что такое если она статическая ?
А вот что пишет про композицию Джим Арлоу и Айла Нейштадт в книге UML2 и унифицированный процесс
Агрегация - это отношение целое часть
1)агрегат может существовать как независимо от частей, так и вместе с ними;
2)части могут существовать независимо от агрегата
3)агрегат является в некотором смысле неполным в случае отсутствия частей
4)части могут принадлежать одновременно нескольким агрегатам
Композиция - это строгая форма агрегации
1)Одновременно части могут принадлежать только одному композиту - совместное владение частями невозможно.
2)композит обладает исключительной ответственностью за все свои части; это значит что он отвечает за их создание и уничтожение
3)композит может высвобождать части, передавая ответственность за них другому объекту
4)в случае уничтожения композита он должен уничтожить все свои части или передать ответственность за них другому объекту.
Ключевое различие композиции и агрегации в том что в композиции у частей нет независимой жизни вне целого (композита) Более того в композиции каждая часть принадлежит максимум одному и только одному целому (композиту), тогда как при агрегации часть может совместно использоваться несколькими целыми(агрегатами).
"Если мы составляем новый класс из уже существующих, этот способ называется композицией (если композиция выполняется динамически, она обычно именуется агрегированием)"
Может кто-нибудь пояснить этот отрывок? тут наверное надо сознание раскрыть чтобы пришло понимание. Что такое композиция которая выполняется динамически? И что такое если она статическая ?
А вот что пишет про композицию Джим Арлоу и Айла Нейштадт в книге UML2 и унифицированный процесс
Агрегация - это отношение целое часть
1)агрегат может существовать как независимо от частей, так и вместе с ними;
2)части могут существовать независимо от агрегата
3)агрегат является в некотором смысле неполным в случае отсутствия частей
4)части могут принадлежать одновременно нескольким агрегатам
Композиция - это строгая форма агрегации
1)Одновременно части могут принадлежать только одному композиту - совместное владение частями невозможно.
2)композит обладает исключительной ответственностью за все свои части; это значит что он отвечает за их создание и уничтожение
3)композит может высвобождать части, передавая ответственность за них другому объекту
4)в случае уничтожения композита он должен уничтожить все свои части или передать ответственность за них другому объекту.
Ключевое различие композиции и агрегации в том что в композиции у частей нет независимой жизни вне целого (композита) Более того в композиции каждая часть принадлежит максимум одному и только одному целому (композиту), тогда как при агрегации часть может совместно использоваться несколькими целыми(агрегатами).