브리지는 구조 디자인 패턴입니다. 이 패턴은 비즈니스 로직 또는 거대한 클래스를 독립적으로 개발할 수 있는 별도의 클래스 계층구조들로 나눕니다.
종종 추상화라고 불리는 이러한 계층구조 중 하나는 두 번째 계층구조의 객체(구현)에 대한 참조를 얻습니다. 추상화의 호출들 일부(때로는 대부분)를 구현 객체에 위임할 수 있습니다. 모든 구현은 공통 인터페이스를 가지므로 추상화 내에서 상호 교환할 수 있습니다.
복잡도:
인기도:
사용 예시들: 브리지 패턴은 크로스 플랫폼 앱들을 처리할 때, 여러 유형의 데이터베이스 서버를 지원할 때 또는 특정 종류의 여러 API 제공자(예: 클라우드 플랫폼, 소셜 네트워크 등)와 작업할 때 특히 유용합니다.
식별법: 브리지는 일부 제어 개체가 해당 개체가 의존하는 여러 다른 플랫폼들과 명확하게 구분됩니다.
장치와 리모컨 사이의 브리지
이 예시는 리모컨 클래스들과 그들이 조절하는 장치들 사이의 분리를 보여줍니다.
리모컨들은 추상화로 작동하고, 장치들은 그들의 구현으로 작동합니다. 공통 인터페이스 덕분에 같은 리모컨들은 다른 장치들과 작동할 수 있고 그 반대의 경우도 가능합니다.
브리지 패턴은 반대 계층구조의 코드를 건드리지 않고도 클래스들을 변경하거나 새로운 클래스들을 생성할 수 있도록 합니다.
devices
devices/Device.java: 모든 장치에 대한 공통 인터페이스
devices/Radio.java: 라디오
devices/Tv.java: 텔레비전
remotes
remotes/Remote.java: 모든 리모컨에 대한 공통 인터페이스
remotes/BasicRemote.java: 기초 리모콘
remotes/AdvancedRemote.java: 고급 리모콘
Demo.java: 클라이언트 코드
OutputDemo.txt: 실행 결과