Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум по объектно-ориентированному программированию..pdf
Скачиваний:
25
Добавлен:
05.02.2023
Размер:
3.39 Mб
Скачать

49

2 Типы отношений между классами и объектами

Этапы разработки объектно-ориентированного представляют собой три этапа жизненного цикла:

1.Объектно-ориентированный анализ. Определяется функциональность системы, которую приложение должно выполнять для достижения требований пользователей. Кроме того, на этом этапе определяется набор объектов, из которых будет состоять система, и описываются взаимодействие и связи между различными объектами (такое взаимодействие принимает форму сообщений между объектами); описываются процессы, которые происходят внутри каждого объекта в ответ на сообщения от других объектов, и инициация сообщений другим объектам.

2.Объектно-ориентированное проектирование. Формируется архитек-

тура классов, эффективно обеспечивающая выявленную на этапе анализа функциональность приложения.

3.Объектно-ориентированное программирование. Определяется дейст-

вительная реализация приложения средствами языка Java. Задача создания системы, обеспечивающей эффективное удовлетворение потребностей пользователей в рамках объектно-ориентированной пара-

дигмы, является нетривиальной, и в этой работе участвуют различные специалисты, в том числе будущие пользователи системы [6].

Таким образом, необходимо смоделировать структуру и процесс функционирования программных систем до начала написания соответствующего кода. При этом непременным условием успешного завершения проекта стало построение предварительной модели программной системы.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Модель (model) – абстракция физической системы, рассматриваемая с определенной точки зрения и представленная на некотором языке или в графической форме.

·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Сточки зрения общих принципов системного анализа одна и та же физическая система может быть представлена несколькими моделями. При этом назначение отдельной модели системы определяется характером решаемой проблемы. Основное требование к модели программной системы – она должна быть понятна заказчику и всем специалистам проектной группы, включая бизнес-аналитиков и

50

программистов. Именно для разработки такой нотации потребовались усилия группы специалистов ведущих фирм-производителей программного и аппаратного обеспечения, которые привели к появлению языка UML.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

UML (Unified Modeling Language – унифицированный язык мо-

делирования) – язык графического описания для объектного моделирования в области разработки программного обеспечения, моделирования бизнес-процессов, системного проектирования и отображения организационных структур.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем. UML не является языком программирования, но на основании UML-моделей возможна генерация кода.

UML позволяет разрабатывать 18 различных диаграмм, начиная от Use Case (диаграмма вариантов использования), заканчивая Deployment Diagram (диаграмма развертывания). На рисунке 2.1 представлена структура типов UML-диаграмм, которые можно использовать в процессе создания объектно-ориентированной системы.

Рис. 2.1 – Типы UML-диаграмм

51

Более детальное рассмотрение моделей выходит за рамки настоящего пособия. В качестве примера проанализируем диаграмму классов (Class Diagram), состоящую из класса Student, которая представлена на рисунке 2.2.

Рис. 2.2 – Диаграмма класса Student

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

- – private (доступны только внутри класса);

+ – public (доступны за пределами класса).

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

Как правило, имеет место иерархия классов, а технология ООП иначе может быть названа как программирование «от класса к классу». То есть любая программа, написанная на объектно-ориентированном языке, представляет собой некоторый набор классов, связанных между собой (рис. 2.3).

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Отношения – определенная связь двух и более объектов.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Возможны следующие связи между классами в рамках объектной модели:

1)ассоциация (Association);

2)агрегация (Aggregation);

3)композиция (Composition);

4)обобщение/расширение/наследование (Inheritance).

52

Отношения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Объект – объект

 

Объект –

 

Множество объектов –

 

множество объектов

 

множество объектов

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.3 – Типы отношений

2.1 Ассоциация

Базовым типом отношений является ассоциация.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Если объекты одного класса ссылаются на один или более объ-

ектов другого класса, но ни в ту, ни в другую сторону отношение между объектами не носит характера «владения» или контейнеризации, то такое отношение называют ассоциацией (association).

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Ассоциация означает, что объекты двух классов могут ссылаться один на другой, иметь некоторую связь друг с другом. Эти два класса как-то связаны между собой, и мы пока не знаем точно, в чем эта связь выражена, и собираемся уточнить ее в будущем. Например, связь между объектами «Институт» и «Профессор» представлена на рисунке 2.4. Отношение ассоциации изображается линией, связывающей классы (простая, без ромбика).

Институт

 

Профессор

 

 

 

 

 

 

 

 

 

Рис. 2.4 – Пример ассоциации

Мощность ассоциации (количество участников):

«один-к-одному»;

«один-ко-многим»;

«многие-ко-многим».

Применительно к созданию классов на основе уже существующих используется термин «композиция» (в широком смысле), т. е. класс создается на основе существующих классов. В то же время в более узком понимании при создании таких классов используются термины «композиция» и «агрегация».