Design Pattern

[Swift] 디자인패턴 - 브리지 패턴

iOSDEv 2024. 2. 26. 20:26
브리지 패턴

거대한 클래스나 밀접하게 관련된 클래스들을 분리해서 독립적으로 수정이나 확장 기능을 가능하게 하는 
structural 디자인 패턴

 

 

1.Abstraction(추상화)- Phone : 

 사용자가 상호 작용할 수 있는 인터페이스를 정의

protocol Phone {
    func makeCall()
    func sendMessage()
}

 

2.Implementor(구현)- Software

 구현은 추상화에서 정의한 인터페이스를 실제로 구현

protocol Software {
    func run()
}

 

3.Refined Abstraction- SmartPhone

 추상화를 구체적으로 구현하는 클래스

class SmartPhone: Phone {
    var software: Software

    init(software: Software) {
        self.software = software
    }

    func makeCall() {
        print("Making a call")
        software.run()
    }

    func sendMessage() {
        print("Sending a message")
        software.run()
    }
}

 

4.Concrete Implementor- Android, iOS 

 구현을 실제로 하는 클래스

class Android: Software {
    func run() {
        print("Running Android OS")
    }
}

class iOS: Software {
    func run() {
        print("Running iOS")
    }
}

 

let androidPhone = SmartPhone(software: Android())
androidPhone.makeCall()

let iPhone = SmartPhone(software: iOS())
iPhone.sendMessage()

 

 

 

https://yagom.net/courses/design-pattern-in-swift/lessons/%ea%b5%ac%ec%a1%b0-%ed%8c%a8%ed%84%b4/topic/bridge/

 

Design Pattern in Swift - 야곰닷넷

Design Pattern in Swift 디자인 패턴 코스에 오신 것을 환영합니다!  이 코스는 야곰 아카데미 3기 수료생들과 […]

yagom.net

https://refactoring.guru/ko/design-patterns/bridge

 

브리지 패턴

/ 디자인 패턴들 / 구조 패턴 브리지 패턴 다음 이름으로도 불립니다: Bridge 의도 브리지는 큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두 개의 개별 계층구조​(추상화 및 구현)​로 나

refactoring.guru