Перейти к основному содержимому

Расширение предметной модели заказа

Продолжим диаграмму классов из предыдущего урока. Опишем данные позиции заказа и товара, а затем соединим эти понятия направленной ассоциацией.

Расширение предметной модели заказа.

Исходная модель​

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

Загрузка изображения...
Заказ связан композиционным отношением с позициями, а товар пока расположен отдельно

Данные позиции заказа​

Выберите класс Позиция заказа. В панели свойств откройте редактор Атрибуты класса.

Загрузка изображения...
Редактор атрибутов открывается из панели свойств выбранного класса

Создайте два атрибута:

  • количество — количество единиц товара, тип Integer;
  • цена — цена единицы товара в заказе, тип Decimal.
Загрузка изображения...
Каждая строка содержит наименование, описание и тип данных

После нажатия Применить оба атрибута появятся внутри класса на диаграмме.

Загрузка изображения...
Диаграмма показывает структуру данных позиции заказа

Данные товара​

Выберите класс Товар и добавьте ему ещё два атрибута:

  • идентификаторТовара — уникальный идентификатор, тип String;
  • наименование — наименование товара в каталоге, тип String.
Загрузка изображения...
Минимальный набор данных позволяет однозначно определить товар и показать его пользователю

Примените изменения и убедитесь, что оба значения отображаются внутри класса.

Загрузка изображения...
Класс товара получил основные данные каталога

Связь позиции с товаром​

Нажмите Новый: Связь. В качестве источника выберите Позиция заказа, а в качестве цели — Товар. Задайте наименование Относится к товару и добавьте короткое описание отношения.

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

После сохранения выберите связь на диаграмме. Укажите тип Ассоциация, кратность 0..* у источника и 1 у цели. Один товар может встречаться во множестве позиций заказов, а каждая позиция относится ровно к одному товару.

Загрузка изображения...
Ассоциация получила кратности ноль или несколько позиций к одному товару

Результат​

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

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

Таймкоды​

  • 00:00 - цель урока;
  • 00:06 - выбор позиции заказа;
  • 00:08 - атрибуты позиции;
  • 00:25 - применение изменений;
  • 00:31 - выбор товара;
  • 00:33 - атрибуты товара;
  • 00:52 - применение изменений;
  • 00:58 - создание связи;
  • 01:02 - выбор источника;
  • 01:05 - выбор цели;
  • 01:11 - сохранение связи;
  • 01:17 - тип отношения;
  • 01:24 - кратность позиции;
  • 01:31 - кратность товара;
  • 01:40 - итоговая модель.

Предыдущий урок: Атрибуты, методы и отношения классов.

Следующий урок: Базовый жизненный цикл заказа.