1. Adapter 패턴이란
이미 구현되어 있는 코드가 있는데, 둘이 연결 좀 시켜주고 싶을 때가 있죠. 어떤 좋은 메서드가 있는데, 인자로 A라는 형식을 받습니다. 근데, 이미 구현되어 있는 코드에는 B라는 형식으로 구현되어 있습니다. 이럴 때, B를 A의 형식으로 바꿔주면 좋은 메서드를 써먹을 수 있습니다. Adapter 패턴은 어떤 오브젝트를 캐스팅이 불가능한 다른 클래스의 형태로 변환시켜주는 것입니다.
2. 따라하기
// Adapter Class
//test 클래스
우리가 최종적으로 쓰고자하는 것은 nextObject() 입니다. 그 녀석은 인자로 Enumeration을 받고 있지요.
그러나 우리가 가지고 있는 것은 Iterator입니다. IteratorToEnumeration 클래스는 Iterator를 받아서 Enumeration 으로 변경시켜줍니다.
A to B의 형태를 가지는 Adapter는 A를 멤버변수로 가지고 B를 구현합니다.
즉, IteratorToEnumeration 클래스가 이 역활을 하고 있습니다. IteratorToEnumeration 이클래스가 아답터 클래스 입니다.
3. JAVA API에 있는 Adapter 패턴 을 이용한 클래스들
java.util.Arrays#asList()
java.util.Collections#list()
java.util.Collections#enumeration()
java.io.InputStreamReader(InputStream)
(returns aReader
)java.io.OutputStreamWriter(OutputStream)
(returns aWriter
)javax.xml.bind.annotation.adapters.XmlAdapter#marshal()
and#unmarshal()
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
쉽게 배우는 Template 패턴 (0) | 2017.01.29 |
---|---|
쉽게 배우는 Builder 패턴 (0) | 2017.01.29 |
쉽게 배우는 Iterator 패턴 (이터레이터 패턴) (0) | 2017.01.29 |
쉽게 배우는 Factory 패턴 (팩토리 패턴) (0) | 2017.01.28 |
디자인 패턴의 간략한 암기 (0) | 2017.01.21 |