3. 브릿지 패턴 (Bridge Pattern)

728x90

지난 [디자인 패턴] - 2. 어댑터 패턴 (Adapter Pattern)에 이어서 유사한 형태의 브릿지 패턴에 대해 설명해보려고 한다. 

브릿지 패턴이란.. 

브릿지 패턴은 "구현(implementation)으로부터 추상(abstraction) 레이어를 분리하여 이 둘이 서로 독립적으로 변화할 수 있도록 한다." 

기능구현에 대해서 두 개를 별도의 클래스로 구현을 한다. (두개의 다른 계층은 하나는 추상, 하나는 구현이다. 이는 서로 다른 계층의 커플링을 약화시키며 협력은 가능하도록 하는 패턴이다) 

 

브릿지 패턴 클래스 다이어그램

Abstraction

  • 기능 계층의 최상위 클래스이며 추상 인터페이스를 정의한다. Implementor에 대한 레퍼런스를 유지한다. 
  • 구현 부분에 해당하는 클래스를 인스턴스를 가지고 해당 인스턴스를 통해 구현부분의 메서드를 호출한다. 

RefinedAbstraction

  • Abstraction에 의해 정의된 인터페이스를 확장한다. (extends)
  • 기능 계층에서 새로운 부분을 확장한 클래스이다.

Implementor

  • 구현 클래스를 위한 인터페이스를 정의한다.
  • Abstraction의 기능을 구현하기 위한 인터페이스를 정의한다. 

ConcreteImplementor

  • Implementor 인터페이스를 구현 즉, 실제 기능을 구현한다.

브릿지 패턴의 예를 설명한만한 예제를 찾아보았는데... 참고 글의 예제가 제일 적절하면서 이해도 잘 되는것 같다. 예제를 그대로 뺏겨서 적는건 좀 아니라고 생각이 들어서 예제는 이 글을 참조하자! 

 

 

브릿지 패턴과 어댑터 패턴의 차이 

먼저 두 패턴 모두 Interface의 detail을 감추고자 하며, 구조적인 차이가 없다.

하지만 두 패턴은 서로 사용하는 목적이 다르다! 

어댑터 패턴 : 어떤 클래스의 인터페이스가 다른 코드에서 기대하는 것과 다를 때 어댑터를 중간에 두어 맞춰주는 것 
브릿지 패턴 : 추상과 구현을 분리하는 것 (추상 클래스와 구현의 변경이 서로 영향을 주지 않도록 한다) 

 

참고 영상: https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/lecture/3190

 

자바 디자인 패턴의 이해 - Gof Design Pattern - 인프런

자바 디자인 패턴 이해하기 강좌 입니다. 여러가지 디자인 패턴들을 알아보며 디자인 패턴에 대한 이해도를 높이도록 도와줍니다. Gof Design Pattern을 자바 언어로 설명한 강의. 의미 있고 쉬운 예제를 준비하려고 노력했습니다. 중급 프로그래밍 언어 Java MVC 온라인 강의 자바 디자인 패턴

www.inflearn.com

참고 글 : https://www.crocus.co.kr/1537

 

브릿지 패턴(Bridge Pattern)

브릿지 패턴(Bridge Pattern) 브릿지 패턴은 아래와 같이 정의한다. "구현(implementation)으로부터 추상(abstraction) 레이어를 분리하여 이 둘이 서로 독립적으로 변화할 수 있도록 한다." "구현부에서 추상층을..

www.crocus.co.kr

 

728x90

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

전략 패턴 (Strategy Pattern)  (0) 2020.10.02
2. 어댑터 패턴 (Adapter Pattern)  (0) 2020.04.24
1. 전략(Strategy) 패턴  (0) 2020.04.18