브릿지 패턴이란?

구현부와 추상층을 분리한 패턴

구현 뿐만 아니라 추상화 부분까지 변경시켜야 하는 경우에 사용하는 구조적 디자인 패턴.

구조

structure.png

  • Abstraction 추상화된 인터페이스
  • RefinedAbstraction 정의된 인터페이스를 확장하는 객체
  • Implementor 구현 클래스의 인터페이스를 정의
    Abstraction의 인터페이스와 일치 할 필요는 없다.
  • ConcreteImplementor Implementor의 인터페이스를 구현하고 구체적인 구현한 객체

장점

  • 구현을 인터페이스에 완전히 결합시키지 않음
    -> 구현과 추상화된 부분을 분리시킬 수 있음.
  • 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있음
  • 추상화된 부분을 구현한 구상 클래스를 바꿔도 클라이언트에 영향을 끼치지 않음

단점

  • 디자인이 복잡해짐

참고