본문 바로가기

강의/Design pattern

브릿지 (Bridge) 패턴

SMALL

https://velog.io/@sillutt/%EB%B8%8C%EB%A6%BF%EC%A7%80-Bridge-%ED%8C%A8%ED%84%B4

 

브릿지 (Bridge) 패턴

브릿지 패턴

velog.io

브릿지 (Bridge) 패턴

추상적인 것과 구체적인 것을 분리하여 연결하는 패턴
하나의 계층 구조일 때 보다 독립적인 계층 구조로 발전시킬 수 있다.
클라이언트는 implementation을 직접 사용하지 않고 추상적인 계층 구조만을 사용한다. 클라이언트는 exception을 사용하며 상위 로직을 담고 있다. 이를 구현하는 구현체, 즉 하위 클래스들은 추상적인 개념들을 확장해갈 수 있다.


Code

public class DefaultChampion implements Champion {
	private Skin skin;
    private String name;
    
    @Override
    public void move() {
    }
    
    @Override
    public void skill() {
    }
    
    //...

위와 같이 코드를 작성하여 필요한 파츠 별로 코드를 확장해갈 수 있다. 기존의 구현된 코드를 변경하지 않고 인스턴스의 추가가 가능하다.


장단점

장점

  • 추상적인 코드를 구체적인 코드 변경 없이 독립적으로 확장 가능
  • 추상적인 코드와 구체적인 코드를 분리 가능

단점

  • 계층 구조가 늘어나 복잡도 증가

적용

JDBC

추상화 - DriverManager, Connection, statement
구체화 - Driver
-> 새 DB를 추가해도 코드가 변경되지 않음.

logging facade

LoggerFactory의 경우 새로운 logger를 사용해도 변경되지 않는다.

MailSender, TransactionManager

영속성과 관련된 기술을 가진 클래스들이고, 추상화된 API를 작성하도록 구현한다면 브릿지 패턴을 만족한다.

 
SMALL

'강의 > Design pattern' 카테고리의 다른 글

플라이웨이트 (Flyweight) 패턴  (0) 2022.08.16
퍼싸드(Facade) 패턴  (0) 2022.08.16
어댑터 (Adapter) 패턴  (0) 2022.08.16
프로토타입 (Prototype) 패턴  (0) 2022.08.16
빌더 (Builder) 패턴  (0) 2022.08.16