[swift] Builder 디자인 패턴

Builder 디자인 패턴은 객체 생성 시 유연성을 제공하고 가독성을 향상시키는 데 도움이 되는 디자인 패턴입니다. 이 패턴을 사용하면 객체를 생성하고 조립하는 방법에 대한 세부 정보를 캡슐화하여 객체 생성 코드가 깔끔하고 간결해질 수 있습니다.

Builder 패턴의 구성 요소

Builder 패턴은 다음과 같은 구성 요소로 이루어져 있습니다:

  1. BuilderInterface: 객체를 생성하는 인터페이스를 정의합니다.
  2. ConcreteBuilder: Builder 인터페이스를 구현하고 객체를 조립하는 방법을 정의합니다.
  3. Director: Builder를 사용하여 객체를 생성하는 방법을 제공합니다.
  4. Product: Builder를 통해 생성된 객체를 표현합니다.

Builder 패턴의 장점

Builder 패턴을 사용하면 다음과 같은 장점을 얻을 수 있습니다:

Builder 패턴의 예제

// Builder 인터페이스
protocol HouseBuilder {
    func buildFloor()
    func buildWalls()
    func buildRoof()
    func buildWindows()
}

// ConcreteBuilder
class WoodenHouseBuilder: HouseBuilder {
    func buildFloor() {
        print("Building wooden floor")
    }

    func buildWalls() {
        print("Building wooden walls")
    }

    func buildRoof() {
        print("Building wooden roof")
    }

    func buildWindows() {
        print("Building wooden windows")
    }
}

// Director
class CivilEngineer {
    private var houseBuilder: HouseBuilder

    init(builder: HouseBuilder) {
        self.houseBuilder = builder
    }

    func constructHouse() {
        houseBuilder.buildFloor()
        houseBuilder.buildWalls()
        houseBuilder.buildRoof()
        houseBuilder.buildWindows()
    }
}

// Product
class House {
    // House 속성 및 동작
}

// 사용 예제
let woodenHouseBuilder = WoodenHouseBuilder()
let engineer = CivilEngineer(builder: woodenHouseBuilder)
engineer.constructHouse()

위의 예제에서, CivilEngineerWoodenHouseBuilder를 사용하여 House 객체를 생성합니다.

결론

Builder 패턴은 객체 생성 코드를 깔끔하고 유연하게 만들어주는 강력한 디자인 패턴입니다. 이를 통해 복잡한 객체를 생성하고 조립하는 과정을 단순화하고 가독성을 향상시킬 수 있습니다.

자세한 내용은 다음 참고 자료를 참조하시기 바랍니다.

참고 자료: