구조 #pragma once #include class IAdapter { public: virtual void OperateAdapter() = 0; }; class Adaptee { public: void OperateAdaptee() { std::cout OperateAdapter(); return 0; } 클래스에 인터페이스를 직접 구현하는것도 방법이지만, 그것은 SOLID의 개방-폐쇄의 원칙에 어긋나기도 하고 라이브러리를 사용하는 경우 수정이 불가능하기도 하다. 클래스(Adaptee)와 인터페이스(IAdapter) 사이에 어댑터의 개념을 가진 클래스(ImplementationAdapter)를 만들어 클라이언트에게 클래스에 대한 인터페이스를 제공한다. 클라이언트는 클래스와 연결된 어댑터를 인터페이..