Вопрос №643 от пользователя Дмитрий Усков в уроке «Модуль 5. Урок 4. Паттерн проектирования Builder.», курс «Введение в Java»
Получается, что используя Билдер, можно забыть указать какое-то поле, что в последствии может привести к краху, чего не может быть при использовании конструктора?
Вы совершенно правы, билдер в чистом виде не обезопасит от значений null в поле, однако если очень важно иметь поле не null нужно или добавить логику проверки на не null в методе build (что бы не допустить создания объекта с некорректным состоянием) или же использовать проверку корректности состояния объекта в рантаме при помощи сторонних библиотеке и аннотаций (об этом позже).
Т.е. в билдер есть варианты как добавить проверку на валидность всех полей, в то же время в конструкторе нету возможности проверять а не перепутаны ли местами аргументы на входе. Плюс в конструктор так же можно передать null (т.е. не обойтись без тех же самых проверок).
Сегодня заметил случай существенного преимущества билдера: когда надо указать много параметров одного типа и каждый из них является НЕ обязательным
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







