Предназначен для закрепления знаний, полученных при изучении блока посвященного ООП из курса по основам языка Java.
Этот пр 769F оект - консольное приложение. После запуска пользователю отображается меню с возможностями программы. Программа просит ввести в консоль пункт меню для дальнейшего действия. Например, пользователь ввел цифру 0. Система просит пользователя ввести имя заявки. После этого действия система сохраняет в памяти заявку и снова отображает пункты меню. Если пользователь выбрал пункт 6 - это будет выход из программы, т.е. программа закрывается.
- Данные будут храниться в памяти. Хранилище будет описывать класс ru.job4j.tracker.MemTracker
- Так же описано хранилище основанное на базе данных ru.job4j.tracker.SqlTracker
- ru.job4j.tracker.Item объект этого класса будет описывать модель данных
- Объект для управления меню ru.job4j.tracker.StartUI
- Удалили зависимость StartUI от внешних ресурсов (Scanner)
- Удалили зависимость классов от внешних ресурсов (System.out)
- Реализовали StartUI за счет шаблона стратегия. Этот шаблон позволяет изменить алгоритм работы программы в запущенной программе
- Шаблон декоратор для валидатора. Смысл Декоратора - добавление нового поведения в уже существующее поведение
- Шаблон фабричный метод. Смысл этого шаблона в создании метода, который создает новый экземпляр объекта. Шаблон абстрактная фабрика. Главное отличие от фабричного метода, абстратная фабрика это интерфейс, который содержит абстратные методы для создания экземплятов.
Шаблон singleton - используется для создания класса, который может содержать только один экземпляр объекта в виртуальной машине. Шаблон singleton применять в проектах, где используются работы с внешними ресурсами: базы данных, серверы. Шаблон может быть с ленивой и энергичной загрукой.
- Ленивая загрузка (Lazy loading) происходит, когда мы явно обращаемся к объекту. Происходит его загрузка.
- Энергичная загрузка (Eager loading) - загружает объект сразу после старта виртуальной машины.
- enum. Eager loading.
- static field. Lazy loading.
- static final field. Eager loading.
- private static final class. Lazy loading.