[swift] Facade 디자인 패턴

예를 들어, 여러 개의 하위 시스템을 하나의 통합된 인터페이스로 제어해야 하는 경우, Facade 패턴을 사용하여 이러한 복잡성을 추상화할 수 있습니다. 이는 클라이언트가 복잡한 시스템의 내부 작동 방식을 알 필요 없이 단일 인터페이스를 통해 사용할 수 있도록 해줍니다.

아래는 Facade 디자인 패턴의 예시 코드입니다.

// 서브시스템 A
class SubsystemA {
    func operationA() {
        print("Subsystem A operation")
    }
}

// 서브시스템 B
class SubsystemB {
    func operationB() {
        print("Subsystem B operation")
    }
}

// Facade
class Facade {
    let subsystemA = SubsystemA()
    let subsystemB = SubsystemB()
    
    func operation() {
        subsystemA.operationA()
        subsystemB.operationB()
    }
}

// 클라이언트
let facade = Facade()
facade.operation()

위의 코드에서 Facade 클래스는 서브시스템 A와 B를 감싸고 단일 인터페이스를 제공합니다. 클라이언트는 Facade를 통해 서브시스템을 사용할 수 있습니다.

참고문헌: