-
[디자인패턴] 브릿지 패턴 (Bridge Pattern)Computer Basis/디자인패턴 및 설계이론 2022. 5. 8. 09:30
브릿지 패턴(Bridge Pattern)은 Flyweight 패턴, Adapter 패턴, Decorator 패턴처럼 구조 패턴 중 하나로, 두 인터페이스에 계층 구조(Hierarchy)를 가지고 있을 때 인터페이스를 구현(implements)으로부터 분리하고 클라이언트 프로그램으로부터 구현 세부사항을 숨기기 위해 사용되는 패턴이다.
구조 패턴 (Structure Pattern)
구조 패턴이란 작은 클래스들을 상속과 합성을 이용하여 더 큰 클래스를 생성하는 방법을 제공하는 패턴입니다.
이 패턴을 사용하면 서로 독립적으로 개발한 클래스 라이브러리를 마치 하나인 양 사용할 수 있습니다. 또, 여러 인터페이스를 합성(composite)하여 서로 다른 인터페이스들의 통일된 추상을 제공한다.
구조 패턴의 중요한 포인트는 인터페이스나 구현을 복합하는 것이 아니라 객체를 합성하는 방법을 제공한다는 것
컴파일 단계에서가 아닌 런타임 단계에서 복합 방법이나 대상을 변경할 수 있다는 점에서 유연성을 갖는다.브릿지 패턴
추상화(abstraction)를 구현(implementation)으로부터 분리하여 각각 독립적으로 변화할 수 있도록 하는 패턴
두개의 다른 계층(하나는 추상, 하나는 구현인 서로다른 계층)의 커플링을 약화시키며 협력은 가능하도록 하는 패턴브릿지 패턴의 예시
1. JDBC 사용시 목격되는 브릿지 패턴
추상적인 부분 (Connection, DrvierManager, Statement) 은 변경없이 사용되고
구체적인 부분 (DriverName, sql) 만 바뀌면서 사용된다.브릿지 패턴의 장점
추상적인 부분과 구체적인 부분을 분리하여 composite 하기 때문에
추상적인 부분은 유지한 채 구체적인 부분만 변경 및 확장시킬 수 있다.
확장에 열려있고, 구체적인 부분이 변경되더라도 추상적인 부분에 영향을 미치지 않으므로
OCP(Open-Closed Principle)를 만족한다.
그리고 추상과 구현이 나누어져 각각 본인이 해야할 일만 관리하면 되기 때문에
SRP(Single Responsibility Principle) 또한 만족한다.
객체지향 디자인 원칙을 지켰기 때문에 이로 인해 부가적으로 얻는 장점들
(코드 재사용성 증가, 중복코드의 제거)도 있다.브릿지 패턴의 단점
계층이 1개 더 생성되므로 복잡도를 증가 시킬 수 있다.
728x90'Computer Basis > 디자인패턴 및 설계이론' 카테고리의 다른 글
[디자인 패턴] 방문자 패턴(Visitor Pattern) (0) 2022.06.04 [디자인패턴] 템플릿 메소드(template-method) 패턴 & 템플릿 콜백(template-callback) 패턴 (0) 2022.05.22 [설계이론] Project Structure - 프로젝트 구성을 어떻게 설계해야 할까? (패키지 분리기준) (0) 2022.03.27 [디자인패턴] 싱글톤패턴을 쓰는 이유와 주의할 점 (0) 2022.03.15 [디자인패턴] 상속보다는 컴포지션을 사용하자!!! (0) 2022.02.17