목적
- 개별적으로 작동하는 특정한 CLASS를 공동의 Interface 규격에 맞추도록 하는 목적
- 즉, 특정한 Interface 규격에 맞도록 중간 연결 클래스를 하나 더 만들어, 개별적인 CLASS의 수정없이 공동 Interface 규격에 맞춤
구현방식
- Client에서 요구하는 규격을 맞추기 위해 객체를 변경함
- 기능객체를 상속하고 Client의 요구규격에 맞는 Interface를 implements함
- 쉽게 말해 독립적인 CLASS A가 있다. 근데 다른 클래스와의 인터페이스를 위해 INTERFACE B를 만들고, 이 규격에 맞추기 위해 extends A implements B를 한 class C를 만든다. 기능은 A의 기능을 상속해서 사용하고, 규격만 B로 다시 재정의 하는 것이다. Class C에서 다시 정의하는 로직따윈 없다.
예제
<Class Banana>
개별적으로 동작하는 banana 클래스가 있다. show()를 통해 화면에 출력하는 기능을 담당
<Interface Adapter>
공통의 Interface로써 print를 통해 화면에 출력하는 공통함수로 변경하고 싶다.
공통의 Interface로써 print를 통해 화면에 출력하는 공통함수로 변경하고 싶다.
<Class AdapterBanana>
기능을 담당하는 Banana를 extends 하고, 공동 인터페이스인 Adapter를 implements를 한다.
그리고 print() 함수에서 단순히 banana의 show()를 수행
<사용>
'Language > Design Pattern' 카테고리의 다른 글
[Design Pattern: 생성] 3. Abstract Factory (0) | 2014.02.28 |
---|---|
[Design Pattern: 생성] 2. Factory Method (0) | 2014.02.28 |
[Design Pattern: 생성] 1. Singleton (0) | 2014.02.28 |
디자인패턴 정리 (0) | 2014.02.22 |
Adapter vs Bridge, Composite vs Decorator vs Proxy 비교 (0) | 2014.02.22 |