Go로 작성된 어댑터
어댑터는 구조 디자인 패턴이며, 호환되지 않는 객체들이 협업할 수 있도록 합니다.
어댑터는 두 객체 사이의 래퍼 역할을 합니다. 하나의 객체에 대한 호출을 캐치하고 두 번째 객체가 인식할 수 있는 형식과 인터페이스로 변환합니다.
개념적인 예시
어떤 객체의 일부 기능들(예: 라이트닝 포트)을 기대하는 클라이언트가 있습니다. 그러나 또 adaptee(윈도우 랩톱)라는 객체가 있습니다. 이 객체는 같은 기능성을 다른 인터페이스(USB 포트)를 통해 제공합니다.
어댑터 패턴은 이러한 상황에 사용할 수 있습니다. 이제 다음을 수행하는 어댑터라는 구조체 유형을 만듭니다:
-
클라이언트가 기대하는 것과 같은 인터페이스(라이트닝 포트)를 준수.
-
클라이언트의 요청을 adaptee가 예상하는 형식으로 변환합니다. 어댑터는 라이트닝 커넥터를 받아들인 다음 신호를 USB 형식으로 변환하고 윈도우 랩톱의 USB 포트로 전달합니다.