[java] 브릿지 패턴

브릿지 패턴은 객체의 인터페이스와 구현을 분리하는 구조적 디자인 패턴입니다. 이 패턴을 사용하면 추상화된 부분과 구현부분을 독립적으로 확장할 수 있습니다.

문제

객체의 인터페이스와 구현을 밀접하게 결합하면, 하나의 변경이 다른 부분에 미치는 영향을 최소화하기 어렵습니다. 예를 들어, 특정 모양의 그리기 도구를 만들고자 할 때, 다양한 색상으로 그리기를 지원하고 싶을 수 있습니다. 하지만 모든 색상에 대해 각각의 모양 클래스를 만들게 되면 결합이 높아지고 유지보수가 어려워집니다.

해결책

브릿지 패턴은 이러한 문제를 해결하기 위해 추상화된 인터페이스와 구현부를 별도의 계층으로 분리합니다. 추상화된 인터페이스에 해당하는 클래스와 구현에 해당하는 클래스를 각각 정의하고, 이들을 연결하는 브릿지 역할을 하는 클래스를 도입합니다. 이를 통해 추상화된 클래스와 구현부가 독립적으로 확장 및 변경될 수 있게 됩니다.

브릿지 패턴의 구성 요소

Abstraction

RefinedAbstraction

Implementor

ConcreteImplementor

브릿지 패턴의 장단점

장점

단점

브릿지 패턴은 객체의 인터페이스와 구현을 분리하여 독립적으로 확장 및 변경할 수 있게 해주는 유용한 디자인 패턴입니다. 이는 유연한 설계와 복잡성 관리를 위한 중요한 도구로서 사용될 수 있습니다.

참고 자료