기록하는 개발자

8. Adapter Pattern 본문

3-2/고급객체지향프로그래밍(디자인패턴)

8. Adapter Pattern

밍맹030 2021. 1. 15. 14:19
728x90

문제

사용 객체의 API가 서로 다름

 

해결 방안

함수를 변환하는 객체를 중간에 넣음

 

목적

-class의 interface를 client가 원하는 형태의 또 다른 인터페이스로 변환.

-adapter는 호환되지 않는 interface 때문에 동작하지 않는 class 들을 함께 동작할 수 있도록 만들어 줌

 

결과

변경 최소화

 

Adapter Pattern

객체를 감싸는 역할을 한다.(Object wrapping)

-서로 호환되지 않는 두 개 interface를 연결하는 작업

-서로 다른 interface를 동일하게 변환

 

객체 지향 Adapter 

-일상 생활에서 쓰이는 adapter와 똑같은 역할을 함.

-어떠한 interface를 client에서 요구하는 형태의 interface에 적응시켜주는 역할을 함.

 

Adapter Pattern 사용 예

자바에서 배열을 고정 크기의 리스트로 변환

-Array.asList() 함수 사용

-변환된 리스트는 ArraysAdapter로서 배열의 특징을 가지게 됨

 -> 리스트로 변환하더라도 고정 크기이므로 add(), remove() 사용 불가

 -> List의 set() 함수를 이용해 요소 내용 변경 가능(단, 원본 배열의 내용 또한 변경됨)

728x90

'3-2 > 고급객체지향프로그래밍(디자인패턴)' 카테고리의 다른 글

10. State Pattern  (0) 2021.01.15
9. Facade Pattern  (0) 2021.01.15
7. Command Pattern  (0) 2021.01.15
6. Singleton Pattern  (0) 2021.01.14
5. Factory Pattern  (0) 2021.01.14