Adapter 패턴

Java 언어로 배우는 디자인 패턴 입문10점
유키 히로시 지음, 이규흥 옮김/영진.com(영진닷컴)

Adapter 패턴은 기존의 클래스를 개조해서 필요한 클래스를 만듭니다. 이 패턴으로 필요한 메소드를 발빠르게 만들 수 있고 버그가 발생하더라도 Adapter 역할의 클래스를 중점적으로 조사하면 되니 디버깅도 쉬워집니다.

위임을 사용한 Adapter 패턴에선 Target 역할인 Print 를 abstraact class로 바꿔버렸지만 MSDN에도 나와있듯 추상클래스는 일부를 구현하거나 구현하지 않을 수도 있는.. 약간 애매한 녀석이다. 아무런 구현도 하지 않은채 구현해야 할 메서드 이름만 나열한 형태라면 그냥 interface로 사용하는게 낫지 않을까?

추상 클래스와 인터페이스 비교

그리고 어댑터 패턴은 기존의 클래스를 개조해서 필요한 클래스를 만들때 적절하다고 한다. 사실 오른쪽에 있던 Banner 클래스도 Print와는 전혀 상관이 없던 애였는데 PrintBanner를 만듦으로서 어디선가 Print 인터페이스를 사용해 Banner 클래스를 재사용할 수 있게 된것이다.

그 밖에 이미 만들어진 클래스를 새로운 인터페이스(API)에 맞게 개조 시킬때나 소프트웨어 버전업할때 생기는 구 버전과의 호환성을 유지하기 위해서도 이 패턴이 필요하다고 한다

Part1 디자인 패턴과 친해지기라는 제목에 걸맞게 Interator와 Adapter 패턴을 통해 디자인 패턴이 그리 멀리 있던게 아니라는 느낌이 든다. 이번에 이사하면서 다시 발견한 요 패턴 책… 다시한번 시작해봐야지

위 다이어그램은 마땅한 이클립스 플러그인을 못찾아 VS2010으로 그림

Advertisements
%d bloggers like this: