본문 바로가기
Swift

Swift에서 어댑터 패턴(Adapter Pattern)의 개념과 예제

by mr.conan 2023. 6. 15.
728x90
반응형

어댑터 패턴(Adapter Pattern)은 소프트웨어 개발에서 사용되는 디자인 패턴 중 하나입니다. Swift에서도 어댑터 패턴을 활용하여 호환되지 않는 인터페이스를 갖는 클래스들을 함께 동작할 수 있도록 만들 수 있습니다. 이 블로그 포스트에서는 어댑터 패턴의 개념을 소개하고, Swift로 구현된 예제를 통해 어댑터 패턴의 사용법을 알아보겠습니다.

 

어댑터 패턴의 개념: 어댑터 패턴은 호환되지 않는 인터페이스를 갖는 클래스들을 함께 동작할 수 있도록 중간에서 변환해주는 역할을 합니다. 이를 통해 기존의 클래스를 수정하지 않고도 다른 클래스와 협업할 수 있습니다. 어댑터 패턴은 호환성 문제를 해결하고, 코드의 재사용성을 높일 수 있습니다.

 

어댑터 패턴 예제:

protocol Target {
    func request()
}

class Adaptee {
    func specificRequest() {
        print("Adaptee: Handling specific request.")
    }
}

class Adapter: Target {
    private let adaptee: Adaptee

    init(adaptee: Adaptee) {
        self.adaptee = adaptee
    }

    func request() {
        print("Adapter: Converting Target interface to Adaptee.")
        adaptee.specificRequest()
    }
}

위의 예제에서는 Target 프로토콜을 정의하고, Adaptee 클래스가 호환되지 않는 인터페이스를 갖습니다. Adapter 클래스는 Target 프로토콜을 구현하며, Adaptee와 Target 사이의 변환 역할을 수행합니다.

사용 예시:

let adaptee = Adaptee()
let adapter = Adapter(adaptee: adaptee)

adapter.request()

위의 예시에서는 Adaptee 인스턴스인 adaptee를 생성하고, 이를 이용하여 Adapter 인스턴스를 생성합니다. adapter.request()를 호출하여 AdapteespecificRequest() 메서드를 호출하는 동작을 수행합니다.

728x90
반응형