Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерная техника (конспектировать ).docx
Скачиваний:
69
Добавлен:
05.11.2018
Размер:
1.56 Mб
Скачать

Пользователь-исполнитель (клиент-сервер)

Когда модуль одного класса (А) вызывает общедоступную операцию другого класса (В), говорят, что между классами существует связь пользователь-исполнитель. Считают, что вызывающий класс (Л) является пользователем, в то время как вызываемый класс - исполнителем.

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

Друзья

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

Когда модуль одного класса (А) либо вызывает внутреннюю операцию другого класса (В), либо осуществляет прямой доступ к данным другого класса, говорят, что класс А является другом класса В.

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

Дружественная связь указывает на высокую степень зависимости между участвующими компонентами.

Назначение диаграммы

Диаграмма зависимости описывает все связи зависимостей, которые имеют место между классами и дружественными модулями неклассов. Эта диаграмма обеспечивает карту-дорогу для программы (библиотеки, среды) как единого целого и позволяет инженеру оценивать зависимости не только на протяжении первоначального проектирования, но и позже, когда рассматриваются модификации.

5.2 Символика

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

Соединители нарисованы между классами и дружественными модулями следующим образом.Если какой-либо модуль" внутри класса вызывает общедоступную операцию другого класса, соединитель рисуют одной линией (соединитель пользователь-исполнитель) от класса, содержащего вызывающий модуль, к классу, чья операция вызывается. Если какой-либо модуль внутри класса (А) вызывает внутреннюю операцию другого класса (В) или осуществляет прямой доступ к его скрытым данным, соединитель рисуют двойной линией (соединитель друзей) от класса А к классу В.

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

Рис.5.2.1. Диаграмма зависимостей. Счет "Кристмас Клаб" является дружественным классом класса Клиент, в то время как Создать почтовую форму - дружественный модулъ Клиента.

Если дружественный модуль вызывает внутреннюю операцию класса или осуществляет прямой доступ к скрытым данным класса В соединитель друзей рисуют от друга к этому классу.