2016년 4월 1일 금요일

Design Pattern Digest - 8. Bridge

이글은 책 "Java언어로 배우는 디자인 패턴 입문"을 읽고 쓴 요약입니다. 
나만 이해하도록 불친절하게 작성되어 있습니다. 
자세한 내용은 책을 보세요. 


Bridge



  • 기술적으로는 전형적인 polymorphysm이고 위임을 사용한다는 특징이 있다. 의미적으로는 기능을 상속하는 클래스 계층으로부터 구현 클래스 계층 (Impl 계열)을 분리하여 연결 (bridging)하는 패턴이다.
  • Template Method나 Strategy 패턴이랑 유사. 특히 Strategy 패턴과는 그림도 동일함. 다른 점은 분류상 Bridge는 구조에 관한 (Structural) 패턴이고 Strategy는 행위에 관한 (Behavioral) 패턴이라는 차이가 있다.  
  • 실제 클래스와 Impl 클래스를 분리하는데 이렇게 하면 실제 클래스의 기능 확장을 위해 상속을 사용할 수 있다. (요샌 이런 방식 잘 안하지만) 이렇게 상속 클래스를 그림에 끼워 넣으면 장점이 좀 더 잘 보인다.
  • 여기서 Impl 클래스를 interface로 선언하여 ConcreteImplementation이 가능하게 하는 것은 구현 방법도 교체할 수 있게 하기 위함이다. 
  • Abstraction과 Implementor간의 연결이 위임이고 위임은 느슨한 연결이다. (둘간의 메소드 이름이 거의 유사)
  • 전략을 사용하는 Context는 Strategy를 사용하는데 이때 위임의 방식을 사용한다. (동일한 method signature를 갖는 경우도 있다) 




댓글 없음:

댓글 쓰기