Bridge 패턴은 사용하게 될 library를 Abstract class 트리로 구성하고 Abstract class 군에 대응하는 concrete class 에서 필요한 동작내용을 구현하는 경우를 의미한다.
Bridge 패턴과 Adapter 패턴의 가장 큰 차이점은 [디자인 패턴]에 설명된 것 처럼 이미 구현된 Library에 대한 적용인지, 아니면 새로 만들어지는 Library의 설계수준에서의 적용인지에 의해 나눠진다고 보는것이 맞다.
Bridge 패턴은 Library를 사용하는 클라이언트로부터 구현부를 추상화시키는 계층을 사용하게 함으로서 코드의 유지보수와 Library의 확장성을 확보하게 하는데에 그 목적이 있다.
실제 패턴의 구성에서는 Abstract class군과 Concrete Class군의 두 그룹이 사용되며 각 그룹은 서로의 목적에 따라 느슨하게 연관되어 있다.물론 각 그룹은 스스로의 원래 목적을 위해 필요한 만큼 확장될 수 있으며, 확장되는 구조는 다른 그룹의 구조에 강제적으로 확고한 1:1의 확장을 요구하지는 않는다. 이렇게 자율적이며 느슨한 연관관계가 있는 두개의 구조를 bridge라고 할 수 있다.
* Concrete class → 구체화 된 클래스
* Abstract class → 추상적인 클래스