어댑터

Adapter

 

 

 

어댑터 패턴은 다른 이름으로 Wrapper라고 불리기도 하며 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록 타 클래스의 인터페이스를 기존 인터페이스에 덧씌우는 패턴이다.

이미 만들어진 클래스를 새로운 인터페이스에 맞게 개조시킬 때 사용하거나 기존 클래스를 개조해 필요한 클래스를 만들 때 사용한다. 

 

 

어댑터 패턴의 구현에는 두 가지 종류가 있다. 

◎ 객체 (Object) Adapter 패턴과 클래스 (Class) Adapter 패턴

 

출처; 위키/어댑터 패턴

1. 객체(Object) : 위임을 사용한 객체 어댑터 패턴

어댑터가 변환하려고 하는 클래스의 인스턴스를 가지고 있다.

 

 

 

출처; 위키/어댑터 패턴

2. 클래스(Class) : 상속을 사용한 클래스 어댑터 패턴

어댑터가 여러개의 다형성 인터페이스를 사용한다.

여러 개의 인터페이스를 상속하거나 구현해서 어댑터가 생성된다. 

 

 

 

◎ 장/단점

  객체 어댑터 클래스 어댑터
장점 상속이 아닌 구성(Composition)을 사용하기 때문에 더 유연 1. 어댑터가 Adaptee의 서브클래스이기 때문에 Adaptee의 행동을 오버라이드할 수 있다.
2. Adaptee 객체를 만들지 않아도 된다. 
단점 Adaptee 객체를 만들어야 사용 가능 1. 다중 상속이 지원되는 언어에서만 사용이 가능하다.
2. 상속을 이용하므로 한 어댑터 클래스가 특정 Adaptee 클래스에만 적용이 가능하다

 

 

 

 

 

 

참고 자료;

https://en.wikipedia.org/wiki/Adapter_pattern

https://arisu1000.tistory.com/27679

https://invincibletyphoon.tistory.com/20

https://ansohxxn.github.io/design%20pattern/chapter13/

+ Recent posts