기능 계층과 구현 계층 분리하기
* Bridge Pattern
- 구현으로부터 추상을 분리함으로써 독립적으로 변할 수 있다
- 거대한 클래스 혹은 밀접하게 연관된 클래스들의 집합을 각각 독립적으로 개발될 수 있는 2개의 분리된 계층구조로 분리할 수 있다 (추상과 구현으로)
* 의도
- 커플링을 제한하기 위해 구현과 독립적으로 추상적인 객제 구조를 정의한다
* 활용
- 추상과 구현이 컴파일 타임에 바인딩 되면 안 될 때
- 추상과 구현이 독립적으로 확장 가능해야 할 때
- 추상화 구현의 변경이 클라이언트에 영향을 줘서는 안될 때
- 구현 세부사항이 클라이언트로 부터 숨겨져야 할 때
* 디자인 원리
- 변화하는 것을 찾고 캡슐화 한다
- 클래스 상속보다 Object Composition 을 선호하라
* Abstraction - 추상 인터페이스를 정의한다
- Implementor 에 대한 참조를 유지한다
- Implementor 에 요청을 전달한다
* RefinedAbstraction - 추상 인터페이스를 확장한다
* Implementor - 구현을 위해 인터페이스를 정의한다
* ConcreteImplementor - Implementor 인터페이스를 구현한다
- 어댑터 패턴과 모두 구현의 상세내용을 숨긴다
- 어댑터 패턴은 관련없는 컴포넌트와 함께 동작하기 위해 설계되었다
(이미 시스템이 설계된 이후에 적용된다)
- 어댑터 패턴은 단지 하나의 인터페이스를 추상화한다
- 브릿지 패턴은 추상과 구현을 독립적으로 변경하기 위해 설계에 앞서 사용된다
- 브릿지 패턴은 구현으로부터 복잡한 개체를 추상화 할 수 있다
'SW 공학 > ::: 패턴' 카테고리의 다른 글
///[GoF] Composite Pattern (0) | 2021.09.27 |
---|---|
///[GoF] Adapter Pattern (0) | 2021.09.26 |
///[GoF] Decorator Pattern (0) | 2021.09.26 |
///[GoF] Singleton Pattern (0) | 2021.09.26 |
///[GoF] Builder Pattern (0) | 2021.09.26 |