추상적인 것과 구체적인 것을 분리하여 연결하는 패턴(composition을 사용)

Abstraction
- 기능 계층의 최상위 클래스이며 추상 인터페이스를 정의한다. Implementor에 대한 레퍼런스를 유지한다.
- 구현 부분에 해당하는 클래스를 인스턴스를 가지고 해당 인스턴스를 통해 구현부분의 메서드를 호출한다.
Refind Abstraction
- Abstraction에 의해 정의된 인터페이스를 확장한다.(extends)
- 기능 계층에서 새로운 부분을 확장한 클래스이다.
Implementor
- 구현 클래스를 위한 인터페이스를 정의한다.
- Abstraction의 기능을 구현하기 위한 인터페이스 정의한다.
Concrete Implementor
- Implementor 인터페이스를 구현 즉, 실제 기능을 구현한다.
<aside>
💡 브릿지 패턴의 핵심은 기능 클래스 계층과 구현 클래스 계층을 분리하고 이를 연결하는 것이다.
</aside>
기능 클래스 계층
먼저, 어떤 새로운 클래스 Something이란 놈이 있다고 가정해 봅시다.