[python] 브리지 디자인 패턴

브리지 디자인 패턴은 객체의 추상화와 구현을 분리하여 각각 독립적으로 변경할 수 있도록하는 패턴입니다. 이 패턴을 사용하면 추상화된 객체와 구현된 객체 간의 강한 결합을 피하고, 유연한 코드를 구현할 수 있습니다.

패턴 구성요소

브리지 디자인 패턴은 다음과 같은 구성요소로 이루어집니다:

패턴의 예제

브리지 디자인 패턴은 다양한 상황에서 사용될 수 있습니다. 예를 들어, 운송 수단과 운송 방식을 각각 추상화와 구현으로 분리하여 유연한 코드를 구현할 수 있습니다.

# 추상화 클래스
class Transport:
    def __init__(self, implementation):
        self.implementation = implementation

    def travel(self):
        pass

# 구체화 클래스
class Car(Transport):
    def travel(self):
        print("Driving a car")

class Bike(Transport):
    def travel(self):
        print("Riding a bike")

# 구현 클래스
class Implementation:
    def implementation_method(self):
        pass

# 구체적인 구현 클래스
class Road(Implementation):
    def implementation_method(self):
        print("Using the road")

class Path(Implementation):
    def implementation_method(self):
        print("Using the path")

# 클라이언트 코드
implementation_road = Road()
implementation_path = Path()

car = Car(implementation_road)
bike = Bike(implementation_path)

car.travel()   # "Driving a car" 출력
bike.travel()  # "Riding a bike" 출력

위 예제에서 Transport 클래스는 추상화를 담당하며, CarBike 클래스는 이를 구체화시킵니다. 마찬가지로 Implementation 클래스는 구현을 담당하며, RoadPath 클래스는 여기에 구체적인 구현을 제공합니다. 클라이언트는 추상화와 구현을 분리하여 자신의 요구사항에 맞는 객체를 생성하고 사용할 수 있습니다.

이러한 브리지 디자인 패턴을 사용하면 추상화와 구현을 분리하여 한 쪽의 변경이 다른 쪽에 영향을 주지 않도록 할 수 있습니다. 또한, 유연하게 코드를 확장하고 새로운 기능을 추가할 수 있는 장점이 있습니다.

참고 자료