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.