Паттерн проектирования Builder в Java | Практический пример в банковской сфере | СОЗДАЕМ СЛОЖНЫЕ ...
Klass Tech Academy
0:00 / 0:00
Паттерн проектирования Builder в Java | Практический пример в банковской сфере | СОЗДАЕМ СЛОЖНЫЕ ...
20 просмотров · 3 дн. назад
Klass Tech Academy
67 подписчиков
20 просмотров · 3 дн. назад
🚀 Устали от конструкторов со слишком большим количеством параметров? Хотите создавать сложные Java-объекты чистым и читаемым способом?
В этом видео мы продолжаем разработку нашего приложения для управления банковской ликвидностью и изучаем шаблон проектирования Builder в Java.
Представьте себе запрос на ликвидность, требующий нескольких деталей, таких как идентификатор клиента, тип ликвидности, идентификатор счета, валюта и канал. По мере роста количества полей конструкторы становятся сложнее для чтения, перегруженные конструкторы трудно поддерживать, а необязательные параметры могут запутывать процесс создания объектов.
💡 Цель: СОЗДАВАТЬ СЛОЖНЫЕ ОБЪЕКТЫ ШАГ ЗА ШАГОМ!
Шаг Builder позволяет нам постепенно создавать объекты, используя читаемые вызовы методов, что упрощает понимание и поддержку процесса создания объектов.
📚 Что вы узнаете?
✅ Поймите проблемы, вызванные конструкторами со слишком большим количеством параметров.
✅ Изучите шаблон проектирования Builder и когда его использовать.
✅ Пошаговое создание сложных объектов с использованием гибкого API.
✅ Чистая обработка обязательных и необязательных полей.
✅ Предоставление значений по умолчанию для необязательных атрибутов запроса.
✅ Повышение читаемости без создания множества перегруженных конструкторов.
✅ Понимание того, как паттерн Builder поддерживает неизменяемые объекты при соответствующем проектировании.
🏦 Практический пример управления банковской ликвидностью
Нашему приложению для управления банковской ликвидностью необходимо создавать объекты запроса, содержащие такую информацию, как:
👤 Идентификатор клиента – идентифицирует клиента.
💰 Тип ликвидности – указывает наличность, кредит или комбинированный вариант ликвидности.
🏦 Идентификатор счета – идентифицирует соответствующий счет.
💱 Валюта – указывает валюту транзакции.
📱 Канал – идентифицирует источник запроса.
Мы будем использовать конструктор LiquidityRequest для создания этих объектов в читаемом и поддерживаемом виде.
Вместо передачи множества значений в длинный конструктор, мы можем создавать запрос, используя цепочки вызовов методов, и четко различать обязательные и необязательные поля.
🎯 Преимущества паттерна Builder
Улучшенная читаемость: Четкое определение каждого поля при создании объекта.
Упрощенные конструкторы: Избегайте конструкторов с длинными списками параметров.
Гибкое конструирование: Устанавливайте необязательные поля только тогда, когда это необходимо.
Лучшая поддерживаемость: Добавляйте поля без введения многочисленных перегрузок конструкторов.
Контролируемое создание объектов: Обеспечьте обязательность полей и валидацию с помощью конструктора.
Поддержка неизменяемости: Создайте объект один раз и предоставьте его как неизменяемый, когда этого потребует дизайн.
🔍 Конструктор против конструктора
Традиционный конструктор: Передает значения непосредственно через параметры конструктора, что может вызывать путаницу по мере увеличения количества полей.
Паттерн «Построитель»: Использует именованные, связанные вызовы методов для того, чтобы сделать создание объектов более выразительным и понятным.
🔗 Продолжайте обучение
Ранее: Паттерн проектирования «Шаблонный метод» в Java — определяет общий рабочий процесс, позволяя подклассам настраивать определенные шаги.
Далее: Паттерн проектирования «Адаптер» в Java — позволяет несовместимым интерфейсам работать вместе без переписывания существующих компонентов.
📌 Смотрите полный плейлист: Объяснение шаблонов проектирования в Java | Руководство для начинающих | Реальный проект по банковской ликвидности
💬 Вопрос: Вы работали с конструкторами Java, которые принимают слишком много параметров? Использовали бы вы паттерн «Построитель» для их упрощения? Поделитесь своими мыслями в комментариях!
👍 Ставьте лайки, делитесь и подписывайтесь, чтобы получать больше практических уроков по Java и Spring Boot.
#Java #BuilderPattern #DesignPatterns #JavaTutorial #CoreJava #CleanCode #ObjectOrientedProgramming #JavaInterview