Java: Классы
Теория: Data-классы
Для получения данных извне и передачи их куда-то дальше в Java используются Data-классы. Обычно это связано с любыми внешними источниками данных, базой данных, HTTP, файлами. Если нам нужно получить какие-то данные, например информацию о заказе, нам придется создать класс, который описывает этот заказ. Причем сам класс не будет зависеть от того, из какого источника пришли данные. То же самое работает и в обратном направлении, если нам нужно выгрузить данные, то для этого создаются свои классы, которые содержат только необходимые поля.
Data-классы это обычные классы без поведения. Из-за этого их стараются делать неизменяемыми, или как говорят иммутабельными (immutable), для избежания случайных ошибок. В идеале у этих классов нет сеттеров, а все поля помечены как final, что защищает их от изменения.
Data-классы это настолько большая часть любого приложения на Java, что в язык была внедрена новая конструкция Record (запись). Записи по своей сути Data-классы. Ниже пример того, как мы бы могли переделать наш OrderDTO:
Запись значительно сокращает количество кода, предоставляя практически такую же функциональность. Но с небольшими отличиями. Геттеры в записях не содержат префикса get.
Несмотря на синтаксическое превосходство, записи обладают рядом недостатков, которые делают их использование в качестве замены обычных классов неудобным. Сюда входят:
- Возможность работать только в неизменяемом стиле. Нет сеттеров.
- Только один конструктор со всеми полями.
- Нет наследования (иногда нужно).
- Многие библиотеки и фреймворки до сих пор не совместимы с записями.
Поэтому основным способом по-прежнему является создание обычных классов. И Lombok делает этот процесс достаточно простым.
Рекомендуемые программы
Завершено
0 / 8

