intermediate
Builder
Собирайте complex objects пошагово с validation, defaults и readable configuration вместо long positional constructors.
Builder собирает сложные объекты пошагово с читаемым fluent API, defaults и валидацией до `build()`. Лучше телескопических конструкторов при комбинаторном взрыве optional полей. В приложениях builders часто у HTTP clients, test fixtures, query objects и config records.
На интервью: сравните Builder с конструкторами, factories и object literals. Обсудите immutability и момент валидации.
Типовые ошибки: builder допускает невалидные частичные состояния; mutable builders в потоках; дублирование defaults в копиях builder.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Инварианты проверяются при build.
- Разумные defaults для optional полей.
- API builder discoverable и логично упорядочен.
- Immutable product после завершения build.