본문 바로가기
SW 공부/Design Patterns

[디자인패턴] Bridge pattern (브릿지 패턴)

by 꼬냉상 2022. 8. 28.

Purpose of Bridge Pattern (브릿지 패턴의 목적)

- Defines an abstract object structure independently of the implementation object structure in order to limit coupling.
- 구현 객체와 추상 객체 (개념)를 독립적으로 분리하는 구조로 정의

 

Bridge pattern (브릿지 패턴)

- bridge는 '무엇인가를 연결한다'는 의미 → bridge 패턴도 두 장소를 연결하는 역할이 있음

- lets you split a large class or a set of closely related classes into two separate hierarchies —abstraction and implementation—which can be developed independently of each other.

- bridge 패턴은 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 각자 독립적으로 변형할 수 있게 해준다.

- Participants 

* Abstraction : interface 정의, reference to the Implementor, forwards requests

* RefinedAbstraction : extends abstraction interface

* Implementor : implementations을 위한 interface 정의,

* ConcreteImplementor : implements Implementor interface

 

Related Patterns

- Comparison with Adapter : 둘 다 구조적인 문제를 해결하는 패턴이지만

   Adapter

    → after-they're designed  (이미 구조적 문제가 발생했을 때, 해결하기 위해서 사용)

    → reengineering, interface engineering
    →  Adapter only abstracts a single interface

   Bridge

    → up-front in a design ( 처음부터 확장하기 쉬운 구조로 미리 대비하기 위해서 사용) 

    → Bridge can abstract a complex entity from its implementation

 

Quiz) Logger에는 일반 Text 메시지로 로깅하는 TextLogger와 HTML 메시지로 로깅하는 HTMLLogger가 있다. Text 메시지를 쓰는(Write) 라이브러리에는 DirectWriter 클래스와 BufferedWriter 클래스가 있으며, Logger는 이중 어떤 것이라도 채택하여 사용할 수 있다. 추후 Logger와 Writer의 변종들이 늘어날 수 있다. 위의 요구사항에 대한 해결책을 Bridge 패턴을 사용하여 설계하시오.

 

 

본 글은 개인의 S/W 구조설계 역량 강화를 위한 학습 목적으로 정리된 내용입니다.
일부 타/개인 단체에 저작권이 있는 자료를 포함하고 있으므로, 절대 영리 목적으로 사용하실 수 없습니다.
반응형

댓글