책 [JAVA 언어로 배우는 디자인 패턴 입문 3판;유키 히로시 저]을 참고하여 작성하였습니다.
(기능의 클래스 계층) == Bridge == (구현의 클래스 계층)
- 기능의 클래스 계층과 구현의 클래스 계층을 연결(분리)한다
- 두 개의 독립된 클래스 계층을 Bridge로 연결
- 상속은 강한 결합, 위임은 약한 결합 / 필요에 따라 클래스 간의 관계를 전환하고자 할 때 위임 사용
기능의 클래스 계층
- 새로운 기능을 추가할 때 자신의 목적과 가까운 클래스를 찾아 하위 클래스를 만들고 거기에 새로운 기능 추가한다
Something
ㄴSomethingGood
ㄴSomethingBetter
구현의 클래스 계층
- 상위 클래스는 추상 메서드로 인터페이스(API)를 규정한다
- 하위 클래스는 구상 메서드로 그 인터페이스를 구현한다.
AbstractClass
ㄴConcreteClass
ㄴAnotherConcreteClass
하나의 클래스 계층에 새로운 기능을 추가하려고 할 때 혹은 구현하려고 할 때 그 레벨이 같아지게 되면서 혼재되기 때문에 두 개의 독립된 클래스 계층으로 나눈 다음 Bridge로 연결한다.
- 기능의 클래스 계층의 최상위 클래스(Abstraction)
- 멤버로 Implementor를 가짐
- 이것이 Bridge 역할 - 여기에 기능 추가한 클래스
- 구현의 클래스 계층의 최상위 클래스 (Implementor)
- Abstraction 인터페이스(API)를 구현하기 위한 메서드 규정 - 구체 클래스
public class Display {
private DisplayImpl impl;
public Display(IdsplayImpl impl) {
this.impl = impl;
}
public void open() {
impl.rawOpen();
}
public void print() {
impl.rawPrint();
}
public void close() {
impl.rawClose();
}
public final void display() {
open();
print();
close();
}
}
'문제 및 이론 정리 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] Decorator - 장식틀과 내용물을 동일시한다 (0) | 2025.02.21 |
---|---|
[디자인패턴] Visitor - 데이터 구조를 돌아다니면서 처리한다 (0) | 2025.02.18 |
[디자인패턴] Iterator - 처리를 반복한다 (1) | 2025.02.18 |
[디자인패턴] Strategy - 스위치를 전환하듯 알고리즘을 바꾼다 (0) | 2025.02.03 |
[디자인패턴] Template Method - 상속 (0) | 2025.01.21 |