Adapter 패턴

24px-Disambig_grey.svg.png 다른 뜻에 대해서는 안드로이드 어댑터 문서를 참조하십시오.

1 개요[편집]

adapter pattern, wrapper pattern; wrapper
어댑터 패턴, 래퍼 패턴, 래퍼
  • 형식을 맞추어 사용하도록 하는 구조
  • 기존 객체를 원하는 형식으로 바꾸어(adapt)[1] 사용하는 방식
  • 기존 객체의 인터페이스 호환성을 맞춰줌
  • 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴
  • 클래스 어댑터(상속을 이용) + 인스턴스 어댑터(위임을 이용)
클래스 어댑터 (상속)

ClassAdapter.png

인스턴스 어댑터 (위임)

ObjectAdapter.png

2 의견[편집]

  • 어댑터 패턴을 활용한 각종 예시들[2]이 현실적이지 않다는 의견이 있다.[3]
  • 예시들에서는 기존 객체가 매우 단순하기 때문에 어댑터를 만들기보다는 기존 객체 자체를 변경하는 편이 더 깔끔하다.[4]
  • 기존 객체를 수정할 수 없을 때[5]에만 원하는 형식으로 포장가공하여 사용하자.

3 같이 보기[편집]

4 주석[편집]

  1. =포장해서(wrap)
  2. Rectangle vs. LegacyRectangle, Ratchet vs. Socket, SquarePeg vs RoundPeg, Duck vs. Turkey
  3. http://stackoverflow.com/questions/11079605/any-real-example-of-adapter-pattern
  4. 그러므로 유지보수에도 유리함
  5. 소스가 공개되지 않은 경우에는 아예 건드릴 수도 없겠지. 그리고 소스가 있더라도 남이 만든 패키지(또는 내부 동작구조가 제대로 파악되지 않는 패키지)를 건드리는 것은 리스크가 있다. 섣불리 변경했다가 향후 버전 업그레이드시에 문제가 발생하는 등 유지보수에 어려움이 생길 수 있다.

5 참고[편집]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}