Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.doc
Скачиваний:
5
Добавлен:
16.06.2024
Размер:
596.99 Кб
Скачать

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

Описание диаграммы классов: в данном проекте основными являются 8 классов: User, AuthorizedUser, Administrator, Review, Order, Session, SessionListm и Ticket.

Error: Reference source not found. Диаграмма классов.

Class User: этот класс используется для описания неавторизованного пользователя. Он имеет protected поле ID = -1, которое означает, что это неавторизованный пользователь. Все остальные значения указывают на то, что этот пользователь является авторизованным. Метод authorization(String, String) позволяет пользователю авторизоваться в системе. Он возвращает переменную типа Boolean, указывая на то, выполнился ли успешно метод. Так же есть метод registration(String, String, String, String), который позволяет пользователю зарегистрироваться в системе и создать своего пользователя. Так же возвращает переменную типа Boolean. Метод viewingSessions() позволяет просматривать доступные сеансы.

Class AuthorizedUser: этот класс используется для описания авторизованного пользователя. Он является потомком класса User. Для него ID никогда не равен -1. Каждый авторизованный пользователь обязательно имеет почтовый адрес (e-mail), логин (login), пароль (password) и имя (first_name). При помощи метода changeData(String, String) можно поменять свое имя и почту. Чтобы поменять пароль у пользователя используется метод changePassword(String, String). Чтобы выйти из системы используется метод logout(). Метод getLogin() возвращает переменную типа String, в которой записан логин пользователя. Для управления бронированием заказа используется два метода: createOrder(Integer) и deleteOrder(Integer). Первый метод получает id сеанса и создает из него заказ. Другой же получает id заказа и если у пользователя такой заказ есть, то удаляет бронь на него.

Class Administrator: этот класс используется для описания администратора. Он является потомком зарегистрированного класса. Метод advertisingPlacement(String) позволяет размещать рекламу в приложении. Метод collectionOfStatistics() позволяет собирать статистику по всем просмотрам и оценкам фильмов. Метод updateSessionList() позволяет изменять список доступных сеансов.

Class Review: этот класс используется для описания отзывов. Каждый отзыв имеет логин пользователя (login), который написал этот отзыв, оценку (stars) по пятибалльной шкале (enum Rating) и сам текст отзыва (description). Метод getDescription() и getRating() возвращают текст отзыва и оценку соответственно. Метод updateReview(String, Rating) позволяет изменить свой отзыв.

Class Order: этот класс используется для описания бронирования сеанса. У каждого заказа существует идентифицирующий номер (ID), номер сеанса (session_id), логин пользователя (login), который сделал заказ, количество заказанных билетов (count_ticket), массив из билетов (tickets), флажок об оплате заказа (is_paid) и цена самого заказа (cost). Метод payment(PaymentMethod) позволяет при выборе оплаты онлайн (PaymentMethod::ONLINE) оплатить заказ через банковскую карту или при выборе оплаты офлайн (PaymentMethod::OFFLINE) оплатить на месте. Также есть метод addTickets(), который добавляет билеты к заказу и возвращает Boolean по тому, выполнился ли успешно метод.

Class Session: этот класс используется для описания сеанса. Каждый сеанс имеет свой идентифицирующий номер (ID), цену за одно место (cost), номер кинозала (cinema_hall_number), дату проведения сеанса (date), жанр (film_genre) и название (film_name) фильма. Методы getDate(), getFilmName(), getGenre(), getIDSession() позволяют получить информацию о дате сеанса, названии фильме, жанре фильма и об идентифицирующем номера сеанса соответственно.

Class SessionList: этот класс используется для описания списка доступных сеансов. У каждого списка есть массив из сеансов (sessions), даты (date), жанра (film_genre) и названия (film_name) фильма. Последние три поля в классе используются для фильтрации сеансов по дате, жанру и названию фильма. Метод setFilter(String, String, Date) позволяет установить фильтр для списка доступных сеансов. Метод getSession(Integer), позволяет по номеру в массиве получить нужный сеанс. Метод update() позволяет получить актуальную информацию по текущим доступным на данный момент сеансам.

Class Ticket: этот класс используется для описания билета. Каждый билет имеет место (place), ряд (row) и идентифицирующий номер сеанса (season_id).