Sobes.tech
Junior — Middle

Pode explicar o princípio de funcionamento do padrão 'Builder' e qual é a sua principal aplicação?

sobes.tech IA

Resposta da IA

O padrão "Builder" é utilizado para criar objetos complexos passo a passo, separando o processo de construção da sua representação. Isso permite criar diferentes variantes do objeto usando o mesmo processo de construção.

A ideia principal é ter uma classe separada (construtor) que acumula os parâmetros e passos para criar o objeto, e depois retorna uma instância pronta.

Aplicações:

  • Quando o objeto tem muitos parâmetros, especialmente opcionais.
  • Quando é necessário criar objetos com configurações diferentes.

Exemplo em Swift:

class Car {
    var color: String?
    var seats: Int?
    var engine: String?
}

class CarBuilder {
    private var car = Car()

    func setColor(_ color: String) -> CarBuilder {
        car.color = color
        return self
    }

    func setSeats(_ seats: Int) -> CarBuilder {
        car.seats = seats
        return self
    }

    func setEngine(_ engine: String) -> CarBuilder {
        car.engine = engine
        return self
    }

    func build() -> Car {
        return car
    }
}

// Utilização:
// let car = CarBuilder().setColor("Red").setSeats(4).setEngine("V8").build()