Студопедия

КАТЕГОРИИ:

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



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




Читайте также:
  1. A) между людьми и между обществом и природой
  2. A) научная дисциплина, исследующая и обобщающая специфические связи между обществом и окружающей средой
  3. A) Средство организации связи между удаленными абонентами
  4. IV. Порядок и сроки представления бюджетной и иной отчетности
  5. SWOT-анализ и методика его использования. Стратегический анализ, PEST-анализ, SNW-анализ в менеджменте.
  6. А-з использования произв мощности и оборудования
  7. Авеста – священная книга зороастризма. Космогонические иэсхатологические представления в зороастризме.
  8. Автоматич. линии; гибкие производственные системы. Их стр-ра, возможности использования в техпроцессах.
  9. АВТОМОБИЛЬНЫМ ТРАНСПОРТОМ В МЕЖДУГОРОДНОМ СООБЩЕНИИ
  10. Агентирование в коммерческой деятельности. Особенности оформления договорных отношений и правового регулирования.

 

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

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

 

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

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

 

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

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

 

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

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

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

 

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



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

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

 

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

 

 


Дата добавления: 2015-04-18; просмотров: 71; Нарушение авторских прав







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