Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Виды отношений между классами в объектно-ориентированном программировании. Использования языка UML (Unified Modeling Language) для представления отношений между классами.




 

Отношения между классами в ООП (UML)

В программах между классами существуют различные виды взаимодействия (или связи): один класс может быть производным другого, третий может содержать объект четвёртого в виде поля.

 

Первый вид связи - association. На русский можно перевести по-разному: ассоциация, связь, объединение. Ассоциация - самый слабый вид связи. Обычно ассоциация возникает, когда один класс вызывает метод другого или если при вызове метода в качестве аргумента передаётся объект другого класса. Иногда при ассоциации показывают направленность (если это имеет значение). В спецификации UML используется слово navigable.

В данном случае направленность ассоциации говорит нам, что в методе MonstAr::Attack используется объект типа int.

 

Обобщение (generalization)Используется для представления наследования в UML.

При обобщении рисуется сплошная линия. Обратите внимание как рисуется стрелочка - пустой треугольник.

 

Теперь насчёт слова обобщение (generalization). В UML используется именно оно, а не наследование, так как в данном виде связи один из классов (базовый) является общим, а остальные классы (производные) - более специализированными.
Следующий тип связи между классами - aggregation (слово происходит от латинского aggregatio - присоединение). По-русски это будет агрегация, агрегирование или соединение частей. UML агрегация отражает связь классов, когда объект одного класса является атрибутом другого.

На диаграммах агрегация показывается незакрашенным ромбом.

Композиция классов - более сильная связь между классами, чем агрегация. Между агрегацией и композицией довольно тонкая грань. Особенностью композиции является то, что объекты, из которых создаётся композиция, могут принадлежать только классу, с которым они образуют композицию. При этом время жизни объекта и класса, в который встраивается объект, совпадает.

 

Для начала рассмотрим два примера из жизни. Например, dvd-привод и диски, которые он читает, образуют агрегацию. Диски можно свободно менять. Примером композиции может служить хлеб и мука. Извлечь муку уже невозможно. На этих двух примерах хорошо видна разница между композицией и агрегацией: компоненты собранные агрегацией можно разъединить, а с композицией этого сделать не получится. Одним из признаков агрегации является использование указателей. И наоборот, если при связи классов указатели не используются, то существует большая вероятность, что перед нами композиция классов.

В данном случае у монстра "есть когти" (определённые в отдельном классе). Возможно, пример не слишком удачный, но здесь хорошо видна композиция классов: нельзя от монстра отделить его когти.

На диаграммах композиция показывается закрашенным ромбом.

 

Реализация. Данная связь показывает отношение: класс - объект. На диаграмме реализация показывается пунктирной линией и незакрашенной стрелочкой:

 

 


Поделиться:

Дата добавления: 2015-04-18; просмотров: 346; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты