Виды отношений между классами
Ассоциацияпредставляет смысловую связь между сущностями (объектами), создаваемыми на основе классов. Ассоциация (association) определяется некоторой связью между классами. Когда в системе создаются представители ассоциированных классов, они связываются так, как определяет данная ассоциация [5-9].
Ассоциации между классами разрабатываются в процессе так называемого семантического моделирования: моделирования структуры данных исходя из их смысла. Для этого полезно использовать ER-диаграммы(Entity – Relationship: Сущность – Связь). ER-диаграммы используются в разных аспектах проектирования сложных программных комплексов, причем, не только комплексов, разрабатываемых с использованием объектно-ориентированной парадигмы, но и при разработке баз данных и во многих других приложениях.
Основными понятиями, используемыми при построении ER-диаграмм, являются следующие.
1)Сущность– класс однотипных объектов, информация о которых должна быть учтена в модели. Сущность в рамках ООП представляется классом.
2)Экземпляр сущности– объект, создаваемый на основе класса.
3) Атрибут сущности– именованная характеристика. В ООП – информационный член класса.
4) Ключ сущности– совокупность атрибутов, однозначно определяющих объект.
5) Связь– ассоциация между сущностями.
Типы связей:
· один к одному;
· один ко многим;
· многие ко многим.
Пример связи: группа – студенты. Связь может иметь одну из двух модальностей:
· может (может быть, а может и не быть);
· должен.
При разработке ER-модели определяется следующая информация:
· список сущностей;
· список атрибутов;
· описание связей.
Связи между сущностями реализуются с помощью механизмов наследования, агрегирования и использования.
Наследование– отношение между классами, при котором один класс повторяет структуру и поведение другого класса (одиночное наследование) или других (множественное наследование) классов.
Класс, поведение и структура которого наследуется, называется базовым (родительским) классом, а класс, который наследует – производным классом.
В производном классе структура и поведение базового класса (информационные члены и методы), дополняются и переопределяются. В производном классе указываются только дополнительные и переопределяемые члены класса. Производный класс является уточнением базового класса:
classz: publicy{. . . };
Агрегация– это отношение между классами типа целое/часть. Агрегируемый класс в той или иной форме является частью агрегата. Объект класса-агрегата может хранить объект агрегируемого класса, или хранить ссылку (указатель) на него.
Композицияявляется специальным видом агрегирования (так называемое сильное агрегирование). Композиция объектов заключается в использовании объектов типов разработанных классов в качестве информационных членов при описании других классов [5].
Использование– отношение между классами, при котором один класс в своей реализации использует в той или иной форме реализацию объектов другого класса.
Использование одним классом объектов другого класса может проявляться одним из следующих образов:
· имя одного класса используется в профиле метода другого класса;
· в теле метода одного класса создаётся локальный объект другого класса;
· метод одного класса обращается к методу другого класса (не совсем частный случай предыдущего способа использования, так как при вызове статических членов классов локальный объект не создаётся).
Дата добавления: 2021-07-22; просмотров: 350;