어댑터
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
'Study > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 상태 (FSM; 유상 상태 기계) (0) | 2021.09.07 |
---|---|
[디자인패턴] 싱글톤(Singletone) (0) | 2020.10.23 |