반응형
[적응자(Adapter) - 클래스, 객체 구조(Class, Object Structural)]
<의도>
클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응(변환)시킨다. 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작시킨다.
<다른 이름>
래퍼(Wrapper)
<동기>
이미 개발된 클래스의 인터페이스를 수정할 수 없다면, Shape와 TextView 인터페이스에 둘 다 맞도록 우리가 개발한 TextShape 클래스를 조정해야 한다.
-Shape의 인터페이스와 TextView의 구현을 모두 상속받는다. → 적응자 패턴 클래스 버전
-TextView의 인스턴스를 TextShape에 포함시키고, TextView 인터페이스를 사용하여 TextShape를 구현한다. → 적응자 패턴 객체 버전
TextShape = 적응자(Adapter)
가끔 적응자는 적응 대상 클래스가 제공하지 않는 기능을 제공하는 책임도 지닌다.
<활용성>
<구조>
<참여자>
<협력 방법>
<결과>
<구현>
<예제 코드>
<잘 알려진 사용예>
<관련 패턴>
반응형
댓글