Работа с JavaFX, БД, многопоточностью

Отменен
Заказ
5693269
Раздел
Программирование
Предмет
Антиплагиат
Не указан
Срок сдачи
2 Дек 2023 в 11:00
Цена
3 000 ₽
Блокировка
10 дней
Размещен
24 Ноя 2023 в 01:22
Просмотров
98
Описание работы

Дан реализованный проект с классом HouseholdDevice и его наследниками Fan, Lamp, TV на Java. В нём выполняется работа с набором устройств через консоль. Задание состоит из двух частей.


Первая часть.

1) Графический интерфейс.

Необходимо разработать графический интерфейс для полного взаимодействия со списком устройств. Для реализации графического интерфейса использовать

JavaFX. Все вводимые данные должны проходить проверку на корректность ввода не только на исключения, но и на логичность вводимых данных.

2) База данных.

Необходимо реализовать и интегрировать взаимодействие с

базой данных в ПО. В БД необходимо хранить информацию

об устройствах и параметрах этих устройств. Также

необходим функционал чтения записей БД. Использовать PostgreSQL. Для работы с БД использовать JDBC. Не использовать средства Spring Framework.

3) MVC.

При реализации придерживаться принципа

проектирования MVC. Model-View-Controller (MVC, "Модель - Представление - Контроллер")

4) Serialize/Deserialize

Необходимо обеспечить сохранения состояния ПО. Для этого

необходимо реализовать интерфейс Serializable или

Externalizable (используйте тот, что будет оптимальнее) для сохраняемых классов, с использованием ObjectOutputStream и ObjectinputStream.

5) Внешняя конфигурация.

Для всех постоянных внешних параметров ПО использовать

вспомогательный файл "properties". Данный файл имеет

расширение *.properties, называют его обычно application.

(Итого application.properties). Пример того, какие параметры необходимо записывать во внешний конфигурационный файл:

- данные для подключения (адрес, порт, логин, пароль)

базы данных.

- пути к файлам JSON

- пути к бинарным файлам сохранения состояния

ПО (те, что из пункта Serialize/Deserialize).

- файлы записи логов

6) Логирование

Добавить к существующему логированию логи работы с вводом данных (пользователь вводит имя параметра - мы пишем в лог введено такое-то значение, либо оно введено неверно). Разделить логирование, реализованное в данном проекте, на несколько файлов. Например, логи обработки ввода в один файл, логи работы с файлами в другой, работа с объектами в третий.


Вторая часть.

Необходимо обеспечить многопоточность работы программы.

1. Функционирование каждого объекта должно быть в

отдельном потоке.

2. Сохранение в JSON, БД, сериализация/десериализация должна происходить в разных потоках для всех объектов "одновременно".

3. Для общих изменяемых свойств, которые могут быть

использованы одновременно в разных потоках необходимо

реализовать защиту от кэширования потоками этих свойств,

чтобы каждый поток видел актуальные данные этих свойств.

4. Для общих ресурсов / методов необходимо предусмотреть

синхронизацию.

5. Также можно использовать пул потоков (Java Thread Pool).


Вместе с итоговым проектом хотелось бы получить небольшое описание выбранных решений в рамках реализации.

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу1 год
Средний балл4.53
СтоимостьНазначаете сами
ЭкспертВыбираете сами
Уникальность работыот 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Прямой эфир