Wrapper, Bridge, Mediator

개발 2012. 8. 24. 11:26

세 가지는 모두 비슷한 개념으로 여겨진다. 역할은 모두 인터페이스 교정에 사용되므로 공통점이 많은 이 세 가지 기법의 주요 차이점을 알아본다.


개인적으로 브릿지에 대한 오해가 약간 있었다.




Wrapper


Decorator 패턴의 주요 기법. 어떤 Component 의 기능을 그대로 놔두고 그 위에 기능을 얹는다(단순히 어댑터의 역할만 할 수도 있다).

어떤 Component 의 Wrapper Class 는 대상 Component 에 당연히 의존성Dependency이 강하다. 즉, Wrapper Class 만 따로 배포할 수는 없다는 뜻.




Bridge


Bridge 패턴으로도 사용됨. BUS, 공통 언어 같은 개념으로 보아도 무방할 듯. 대개의 경우 어댑터 역할을 할 때 설계 문서상으로는 암묵적으로 생략되는 경우가 많다고 함. 이는 임시적인 속성을 지니는 브릿지의 특성 상 그럴 듯하지만 구현과 설계의 괴리를 높이는 요소로 지적될 수 있을 듯.




Mediator


중재자 패턴은 링크 생략. 래퍼와 브릿지의 속성을 모두 지니고 있으며 두 패턴의 끝판왕 같은 기분으로 등장했다. 임시적인 녀석이 아니라 설계 단계에서도 명확하게 표현되는 특징적인 방식. 말하자면 서로 다른 라이브러리를 소통하게 하고 활용하고 꾸미기 위해 필수로 필요할 경우 해당 기능(래핑, 브릿지)을 모조리 모아 패키지로 구성했다고 생각할 수 있다.

게임의 비즈니스 로직에서 만약 중재자를 사용해야 한다면 엄청나게 슬픈 일이 될 것 같다. 엔진과 라이브러리 등의 밑단으로 잘 내려보자.

Posted by OOJJRS
,