[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를 통해 서브시스템을 사용할 수 있습니다.
참고문헌:
- Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design patterns: elements of reusable object-oriented software. Addison-Wesley.