Builder šablonas konstruoja sudėtingus objektus žingsnis po žingsnio, atskiriant konstruavimą nuo reprezentacijos. Jis ypač naudingas objektams su daugeliu parametrų arba neprivalomų dalių, sukurdamas skaitomą, lanksčią objektų konstruavimą vietoj sudėtingų konstruktorių.
Problema, kurią sprendžia Builder
Objects with MANY parameters (especially optional ones) lead to problems:
✗ huge constructors: new Pizza('large', true, false, true, 'thin', false, ...) →
unreadable (which boolean is what?); hard to use; error-prone
✗ many constructor overloads (telescoping constructors) → messy
→ Builder provides a clean, readable, step-by-step way to construct such objects.
