////
Search
🧩

Adapter pattern(어댑터 패턴)

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

어댑터를 적용한 동글과 이어폰 사용

이부분은 코드로 이해하는 것이 더 좋을 것 같아서 코드로 작성해 보겠다.
IphoneX
Ieopon
Adapter

어댑터 패턴 이해하기

어댑터 패턴이란? 위키백과
클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다.
아하 아이폰X에서는 라이트닝단자를 원하구나, 그래서 어댑터를 만들어서 기존 이어폰과 이어주구나 특징
호환성을 높인다.
라이트닝이 가능하도록 이어폰과 연결하구나
변환이라는 키워드가 중요하다.
이어폰이 어댑터로 변했구나. 아이폰X에서는 어댑터의 play만 호출하면 되는구나
client - IphoneX Target<<Interface>> - Sender Adapter - LightningConnector Adaptee - Ieopon
이 패턴에서 깨달은 사실은 “기존”과 “신규”라는 키워드였다. 기존의 시스템에 신규 시스템을 추가해야 할 때 상호 호환이 되지 않는다면 어댑터로 신규 시스템을 감싸서 기존 시스템에서 사용할 수 있다는 것이다.