[swift] 빌더 패턴

빌더 패턴은 객체를 생성하는 복잡한 과정을 단순화하고, 객체의 생성자에 매개변수를 전달하는 방식을 개선하는 디자인 패턴 중 하나입니다. 이 패턴을 사용하면 객체를 편리하게 구성하고 객체 생성 과정을 쉽게 이해할 수 있습니다.

빌더 패턴의 구조

빌더 패턴은 크게 빌더(Builder), 제품(Product), 디렉터(Director)로 구성됩니다.

  1. 빌더(Builder)는 객체를 생성하기 위한 인터페이스를 정의합니다.
  2. 제품(Product)은 생성할 객체의 구체적인 타입을 나타내며, 빌더에서 생성된 객체입니다.
  3. 디렉터(Director)는 클라이언트의 요청에 따라 빌더를 사용하여 객체를 생성합니다.

빌더 패턴의 장점

빌더 패턴의 예시

class Burger {
  let size: String
  let cheese: Bool
  let pickles: Bool
  // 기타 속성

  init(builder: BurgerBuilder) {
    self.size = builder.size
    self.cheese = builder.cheese
    self.pickles = builder.pickles
    // 기타 속성 설정
  }
}

class BurgerBuilder {
  var size: String = "Regular"
  var cheese: Bool = true
  var pickles: Bool = false
  // 기타 속성

  func setSize(size: String) {
    self.size = size
    return self
  }

  func addCheese(cheese: Bool) {
    self.cheese = cheese
    return self
  }

  func addPickles(pickles: Bool) {
    self.pickles = pickles
    return self
  }

  func build() -> Burger {
    return Burger(builder: self)
  }
}

let burger = BurgerBuilder()
  .setSize(size: "Large")
  .addCheese(cheese: true)
  .addPickles(pickles: true)
  .build()

위 예시는 빌더 패턴을 사용하여 햄버거 객체를 생성하는 코드입니다.

빌더 패턴을 사용하면 햄버거 객체를 생성하는 과정을 보다 직관적으로 표현할 수 있으며, 객체의 구성 요소를 유연하게 조절할 수 있습니다.

요약

빌더 패턴은 객체 생성 과정을 단순화하고 유연하게 처리할 수 있는 강력한 디자인 패턴입니다. 이를 통해 코드의 가독성을 높이고 유지보수성을 향상시킬 수 있습니다.

더 많은 정보를 알고 싶다면 빌더 패턴을 참고해보세요.