추상적인 것과 구체적인 것을 분리하여 연결하는 패턴
하나의 계층 구조일 때 보다 독립적인 계층 구조로 발전시킬 수 있다.
클라이언트는 implementation을 직접 사용하지 않고 추상적인 계층 구조만을 사용한다. 클라이언트는 exception을 사용하며 상위 로직을 담고 있다. 이를 구현하는 구현체, 즉 하위 클래스들은 추상적인 개념들을 확장해갈 수 있다.
public class DefaultChampion implements Champion {
private Skin skin;
private String name;
@Override
public void move() {
}
@Override
public void skill() {
}
//...
위와 같이 코드를 작성하여 필요한 파츠 별로 코드를 확장해갈 수 있다. 기존의 구현된 코드를 변경하지 않고 인스턴스의 추가가 가능하다.
추상화 - DriverManager, Connection, statement
구체화 - Driver
-> 새 DB를 추가해도 코드가 변경되지 않음.
LoggerFactory의 경우 새로운 logger를 사용해도 변경되지 않는다.
영속성과 관련된 기술을 가진 클래스들이고, 추상화된 API를 작성하도록 구현한다면 브릿지 패턴을 만족한다.