2. Bridge 패턴이란?
• 현실세계의 다리가 강 양쪽의 장소를 연결하는 열학이듯
Bridge패턴도 두 장소를 연결하는 역할을 함
• Bridge 패턴은 ‘기능의 클래스 계층’과 ‘구현의 클래스
계층’의 다리역할을 함.
• 서로 분리함으로써 변경되는 요구사항에 클래스의 확장을
하지 않고(파생 클래스의 증가 없이) 쉽게 해결 할 수 있다.
3. Birdge 패턴 구성요소
• 클래스의 인터페이스를 정의하는
추상화(Abstraction)
• 해당 인터페이스를 상속하고 구현하는
정제된 추상화(Refined Abstraction)
• 구현 클래스에 대한 인터페이스를 정의하는
구현자(Implementor)
• 구현 클래스인 ConcreteImplementor
4. Bridge 패턴 구조
기능계층 구현계층
새로운 기능을 추가하고 싶을 때 기능계층에 새로운 하위 클래스를 만들어
추가한다.
새로운 구현을 추가하고 싶을 때 새로운 구현(abstract, interface)를 추가한다.
5. 두개를 나누지 않았다면??
• 클래스 계층이 하나라면 기능의 클래스 계층과
구현의 클래스 계층이 하나의 계층구조 안에
혼재하게됨.
• 사용자 코드가 플랫폼에 종속 됨. 사용자가
특정한 구현을 가진 구체 클래스를 인스턴화
해야 하는데, 이 특정한 구현이 바로 플랫폼에
종속적인 구현.
• 요구사항을 해결하다 보면 파생 클래스의
폭발적인 증가가 발생 할 수 있음.