한 클래스의 인터페이스를 클라이언트에서 사용하고자하는 다른 인터페이스로 변환.
어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다.
출처: https://jusungpark.tistory.com/22 [정리정리정리]
client는 Target I에 의존하고 있는데 Adaptee를 쓰고 싶음
-> 바로 못쓰니까 어댑터를 이용해 사용
Target을 구현하고 생성자로 Adaptee객체를 받아서 Adaptee클래스의 멤버도 사용가능 -> Target의 추상메서드에서 Adaptee의 메서드를 실행하면 어댑터를 사용했을때 Adaptee의 기능을 동작시킬 수 있다.
생성자로 Adaptee객체를 받은 Target을 구현한 Adapter객체를 만든다. 내부에 Target객체를 만들어놓고 생성자로 받은 Adapter객체로 셋팅해놓으면 Adapter클래스의 멤버들이 사용됨
그 안에서는 Adaptee의 메서드 동작.
-> Target을 구현하고 있는 어댑터를 이용해 그 객체로 Adaptee의 멤버에 접근해서 실행가능하다!