Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИДЗ.Заболотников.М.Е., Петрова С.В., 9373.docx
Скачиваний:
9
Добавлен:
20.06.2023
Размер:
705.38 Кб
Скачать

2.3.2. Диаграмма классов

Описание диаграммы классов: в данном проекте основными классами являются классы Покупатель, Заказ, Корзина, Товар, Список товаров, Автор.

Класс Покупатель описывает авторизованных пользователей системы. За каждым пользователем закреплены его имя (имя), фамилия (фамилия), логин (почта), пароль (пароль), номер телефона (номерТелефона) и персональный идентификатор пользователя (idАвторизованногоПользователя). Для данного класса доступны методы получения id пользователя узнатьId(), номера телефона данного пользователя узнатьНомерТелефона(), а также метод аутентификации пользователя аутентификация(String, String) и метод для получения информации о наличии номера телефона пользователя узнатНаличиеНТ().

Класс Заказ необходим для связи корзины и покупателя. Данный класс хранит в себе идентификатор заказа (idЗаказа), стоимость заказа (стоимостьЗаказа), форма оплаты (формаОплаты) и дата оформления заказа (датаЗаказа). Методы данного класса позволяют получить общую стоимость всего заказа показатьИтоговуюСтоимость(), оплатить заказ оплатитьЗаказ() и отменить заказ отменитьЗаказ().

Третий класс – Корзина – описывает список выбранных пользователем товаров. Этот класс состоит из идентификатора корзины (id), идентификатора пользователя (idПользователя) и списка выбранных товаров (списокТоваров). Методы данного класса дают возможность добавить товар у список выбранного добавитьТовар(товар, int), убрать товар из списка выбранного убратьТовар(товар, int) и узнать общую стоимость выбранных товаров узнатьСтоимость().

Класс Товар необходим для описания товаров, которые может приобрести пользователь. Данный класс содержит идентификатор товара (id), называние товара (название), жанр книги (жанр), количество станиц в ней (количествоСтраниц), цену за единицу товара (цена) и количество этого товара на складе (количество). Методы класса Товар позволяют узнать название товара узнатьНазвание(), узнать количество товара на складе узнатьКоличество(), а также цену за единицу товара узнатьЦену() и идентификатор товара узнатьId().

Пятый класс – Список товаров. Данный класс описывает все доступные товары. Здесь хранится список всех имеющихся на складе товаров (список). Методы этого класса дают возможность добавить товар в список добавитьТовар(товар, int) и удалить товар из списка удалитьТовар(товар, int).

Шестой класс – Автор – описывает пользователя, имеющего особые возможности: выкладывать свой товар (свои книги) на продажу. Данный класс состоит из идентификатора автора (idАвтора), имени пользователя (имя), фамилии пользователя (фамилия), логина (почта), пароля (пароль), номера телефона пользователя (номерТелефона) и списка товаров, размещённого пользователем на сайте (списокТоваров). Методы этого класса позволяют узнать идентификатор автора узнатьId(), номер телефона узнатьНомерТелефона(), пройти аутентификацию аутентификация(String, String), а также позволяют узнать наличие номера телефона узнатьНаличиеНТ() и показать список товаров этого автора показатьТоварыАвтора().

Класс Покупатель связан с классом Заказ отношением ассоциации «один-к-одному», так как один покупатель может за один раз сделать лишь один заказ.

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

Между классами Корзина и Товар -- отношение агрегации «один-ко-многим», поскольку у одного и того же пользователя корзина содержит множество товаров.

Классы Товар и Список товаров связаны отношением агрегации «один-ко-многим», так как список товаров состоит из некоторого количества товаров.

Класс Список товаров связан с классом Автор отношением ассоциации «один-ко-многим», потому что разные авторы добавляют свои книги в единый список товаров. Также автор является источником пополнением списка товаров.

Диаграмма классов представлена на рисунке 3.

Рисунок 3. Диаграмма классов.