Основы UML - Диаграммы - Диаграмма пакетов

E-mail Печать PDF
Рейтинг пользователей: / 8
ХудшийЛучший 
Индекс материала
Основы UML
Способы применения UML
Модель и ее элементы
Диаграммы
Диаграммы - Классификация
Диаграммы - Диаграмма классов
Диаграммы - Диаграмма прецендентов
Диаграммы - Диаграмма объектов
Диаграммы - Диаграмма деятельности
Диаграммы - Диаграмма последовательности
Диаграммы - Диаграмма размещения
Диаграммы - Диаграмма пакетов
Все страницы

Диаграмма пакетов

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

Пакет – это инструмент группирования, который позволяет взять любую конструкцию UML и объединить её элементы в единицы высокого уровня.

В терминах программирования на C# пакеты UML соответствуют пространствам имен.

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

Задача распределения классов по пакетам является достаточно сложной. В этом деле могут помочь два правила: общий принцип замывания и общий принцип повторного использования. Общий принцип замыкания гласит, что причины изменения классов пакета должны быть одинаковые. Общий принцип повторного использования  утверждает, что классы должны использоваться повторно все вместе.

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

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

Допустим, что вы хотите предоставить некоторый пользовательский интерфейс (UI) выключателей для включения и выключения некоторого объекта. Мы хотим, чтобы он работал с различными устройствами, такими как обогреватели (heaters) или лампы (lights). Выключатели UI должны вызывать методы обогревателя, но мы не хотим, чтобы выключатели зависели от обогревателей. Мы можем избежать этой зависимости, определяя в пакете выключателей интерфейс, который затем реализуется каждым классом, работающим с этим выключателем, как показано на рисунке ниже. Здесь представлен пример шаблона Разделенный интерфейс.



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии, категория: "IT"

Интересное




Похожие материалы

Партнёры