디자인 패턴/구조 패턴

Bridge 패턴

언린이 2021. 10. 2. 12:37

Bridge 패턴은 구현으로부터 추상 레이어를 분리하여 이 둘이 서로 독립적으로 변화할 수 있도록 해주는 패턴입니다.

 

 

구조

  • Abstraction
    • 기능 계층의 최상위 클래스이며 추상 인터페이스를 정의합니다.
    • 구현 부분에 해당하는 클래스의 인스턴스를 가지고 해당 인스턴스를 통해 구현 부분의 메서드를 호출합니다.
  • RefinedAbstraction
    • Abstraction 클래스에 의해 정의된 인터페이스를 확장합니다.
    • 기능 계층에서 새로운 부분을 확장한 클래스입니다.
  • Implementor
    • 구현 클래스를 위한 인터페이스를 정의합니다.
    • Abstraction 클래스의 기능을 구현하기 위한 인터페이스를 정의합니다.
  • ConcreteImplementor
    • Implementor의 인터페이스에 대한 실제 기능 부분을 구현합니다.

 

 

활용 상황

  • 런타임에 실제로 사용될 구체적인 구현체가 결정되어야 할때 유용합니다.
  • 구현할 클래스의 기능부 및 구현부가 지속적인 확장 가능성이 있을때 유용합니다.

 

 

Bridge 패턴의 장단점

  • 장점
    • 구현할 인터페이스에 완전히 결합시키지 않았기 때문에 구현과 추상화된 부분을 분리시킬 수 있습니다.
    • 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있습니다.
    • 추상화된 부분을 구현한 구상 클래스를 변경해도 클라이언트 쪽에는 영향을 미치지 않습니다.
  • 단점
    • 디자인이 복잡해집니다.

'디자인 패턴 > 구조 패턴' 카테고리의 다른 글

Flyweight 패턴  (0) 2021.10.09
Facade 패턴  (0) 2021.10.05
Adapter 패턴  (0) 2021.09.11
Decorator 패턴  (0) 2021.09.07
Proxy 패턴  (0) 2021.09.05