
어댑터 패턴은 기존의 클래스를 다른 인터페이스에 맞게 변환하는 패턴이다. 이 패턴은 호환성이 없는 인터페이스를 가진 두 클래스를 연결하여 함께 동작할 수 있도록 해준다.
어탭터 패턴은 일반적으로 다음과 같은 구성 요소로 이루어져 있다.
어탭터 패턴은 호환성이 없는 클래스를 연결하여 함께 동작할 수 있게 해주는 유용한 패턴이지만, 몇 가지 제한 사항이 뒤따른다.
# Adaptee 클래스
class ExternalAPI:
def get_data(self):
return {"name": "taekyeong", "age": 32}
# Target 인터페이스
class InternalAPIInterface:
def get_name(self):
pass
# Adapter 클래스
class ExternalAPIAdapter(InternalAPIInterface):
def __init__(self, external_api: ExternalAPI):
self.external_api = external_api
def get_name(self):
data = self.external_api.get_data()
return data["name"]
# 클라이언트 코드
external_api = ExternalAPI()
adapter = ExternalAPIAdapter(external_api)
name = adapter.get_name()
print(name) # "taekyeong"