1. 브릿지 패턴이란?
추상적인 것과 구체적인 것을 분리하여 연결하는 패턴이다.
주로 컴포지션(합성)을 활용해서 구현하게 된다.
예를 들어 브랜드별 공기청정기를 구현한다고 했을 때 가장 나이브하게 구현하면 AirCleaner 인터페이스와 SamsungAirCleaner, LgAirCleaner와 같이 개별적인 클래스를 일일이 만들어야 한다. 이렇게 되면 계층구조가 굉장히 커질 수 있다.
하지만 AirCleaner라는 인터페이스가 내부적으로 Brand라는 클래스를 포함하고 있다면, 클라이언트는 추상적인 계층구조만을 사용하며 해당 추상 계층구조가 포함하는 구현체를 간접적으로 사용하게 된다.
2. 구현 방법
다음과 같은 구조를 가져갈 수 있다.
public class DefaultAirCleaner implements AirCleaner {
private Brand brand;
...
}
AirCleaner samsungAirCleaner = new AirCleaner(new Samsung());
AirCleaner lgAirCleaner = new AirCleaner(new LG());
마찬가지로 클라이언트는 추상적인 계층구조(AirCleaner)만을 사용하게 된다.
3. 장/단점
1) 장점
추상적인 코드를 유지한 채 구체적인 코드를 변경하거나 확장할 수 있다. (OCP)
또한 추상적인 것과 구체적인 것을 분리하여 관리할 수 있다는 장점이 있다.
2) 단점
계층구조가 늘어남으로써 복잡도가 증가할 수 있다.
'Develop > DESIGN PATTERNS' 카테고리의 다른 글
[GoF Design Pattern] 컴포짓 패턴 (Composite pattern) (0) | 2021.12.22 |
---|---|
[GoF Design Pattern] 어댑터 패턴 (Adapter pattern) (0) | 2021.12.22 |
[GoF Design Pattern] 프로토타입 패턴 (Prototype pattern) (0) | 2021.12.22 |
[GoF Design Pattern] 빌더 패턴 (Builder pattern) (0) | 2021.12.22 |
[GoF Design Pattern] 추상 팩토리 패턴 (Abstract factory pattern) (0) | 2021.12.22 |