Приведи пример паттерна Builder в Java

«Приведи пример паттерна Builder в Java» — вопрос из категории Паттерны, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

public class User {
    private final String firstName;
    private final String lastName;
    private final int age;

    private User(Builder builder) {
        this.firstName = builder.firstName;
        this.lastName = builder.lastName;
        this.age = builder.age;
    }

    public static class Builder {
        private String firstName;
        private String lastName;
        private int age;

        public Builder firstName(String firstName) {
            this.firstName = firstName;
            return this;
        }

        public Builder lastName(String lastName) {
            this.lastName = lastName;
            return this;
        }

        public Builder age(int age) {
            this.age = age;
            return this;
        }

        public User build() {
            return new User(this);
        }
    }
}

// Использование:
User user = new User.Builder()
    .firstName("John")
    .lastName("Doe")
    .age(30)
    .build();

Паттерн Builder позволяет создавать объекты с большим количеством параметров, делая код читаемым и избегая "телескопических конструкторов". Особенно полезен, когда некоторые параметры необязательны.