어댑터 패턴이란?
위키백과
클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다.
특징
•
호환성을 높인다.
•
변환이라는 키워드가 중요하다.
필자의 경우 어댑터 패턴은 비교적 쉽게 이해할 수 있었다. 앞서 배운 커맨드 패턴에서 믹싱장비를 제외하면 변환케이블만 남는다. 그래서 이 변환젠더만 남은 상태가 곧 어댑터 패턴이었다.
필자의 경험을 기반으로 설명해보겠다. 예전에 나는 아이폰 6S에서 아이폰X로 큰맘 먹고 기변을 했다. 근데 기존에 가지고 있던 이어폰을 사용하고 싶었다(이유는 이어폰이 좀 좋은 거였다). 그런데 이 애플은 라이트닝 단자만 지원했던 것이다. 하지만 그 때 아이폰X를 사면 동글도 같이 준걸로 기억한다. 그래서 아주 해피하게 음악을 들을 수 있었다(하지만 일주일만에 동글을 잃어 버렸다).
아이폰X 단자
라이트닝 동글
이어폰 케이블
어댑터를 적용한 동글과 이어폰 사용
이부분은 코드로 이해하는 것이 더 좋을 것 같아서 코드로 작성해 보겠다.
IphoneX
Ieopon
Adapter
어댑터 패턴 이해하기
어댑터 패턴이란?
위키백과
클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다.
•
호환성을 높인다.
•
변환이라는 키워드가 중요하다.
client - IphoneX
Target<<Interface>> - Sender
Adapter - LightningConnector
Adaptee - Ieopon
이 패턴에서 깨달은 사실은 “기존”과 “신규”라는 키워드였다. 기존의 시스템에 신규 시스템을 추가해야 할 때 상호 호환이 되지 않는다면 어댑터로 신규 시스템을 감싸서 기존 시스템에서 사용할 수 있다는 것이다.