클래스 다이어그램

아이폰의 이어폰을 생각해보자

가장 흔한 이어폰 잭을 아이폰에 사용하려면, 잭 자체가 맞지 않는다.

따라서 우리는 어댑터를 따로 구매해서 연결해야 이런 이어폰들을 사용할 수 있다

이처럼 어댑터는 필요로 하는 인터페이스로 바꿔주는 역할을 한다

이처럼 업체에서 제공한 클래스가 기존 시스템에 맞지 않으면?

기존 시스템을 수정할 것이 아니라, 어댑터를 활용해 유연하게 해결하자


코드 예시

코드로 어댑터 패턴 이해하기

오리와 칠면조 인터페이스 생성

만약 오리 객체가 부족해서 칠면조 객체를 대신 사용해야 한다면?

두 객체는 인터페이스가 다르므로, 바로 칠면조 객체를 사용하는 것은 불가능함

따라서 칠면조 어댑터를 생성해서 활용해야 한다

package AdapterPattern;

public interface Duck {
	public void quack();
	public void fly();
}