Sobes.tech
Назад к вопросам
Junior — Middle
68

Какие причины делают применение паттерна Builder оправданным?

Ответ от нейросети

sobes.tech AI

Паттерн Builder оправдан в следующих случаях:

  • Когда объект сложный и имеет много параметров, особенно если некоторые из них необязательны.
  • Если нужно создавать разные вариации объекта с похожей структурой.
  • Чтобы избежать конструктора с длинным списком параметров (телефонный код), что улучшает читаемость и поддержку кода.
  • Для поэтапного построения объекта, где порядок установки параметров важен или параметры зависят друг от друга.

Пример на Java:

public class Computer {
    private String CPU;
    private int RAM;
    private int storage;

    private Computer(Builder builder) {
        this.CPU = builder.CPU;
        this.RAM = builder.RAM;
        this.storage = builder.storage;
    }

    public static class Builder {
        private String CPU;
        private int RAM;
        private int storage;

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

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

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

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

// Использование:
Computer pc = new Computer.Builder()
    .setCPU("Intel i7")
    .setRAM(16)
    .setStorage(512)
    .build();

Такой подход улучшает читаемость и гибкость создания объектов.