adapter패턴은 어떤 class의 interface가 원하는 규칙에 어긋날 때 범용성을 확보하기 위해서 어떤 class의 앞줄에 원하는 interface를 구현해서 인자나 동작등을 변환하는 구조를 의미한다. 이 경우 어떤 class를 adaptee, 동작이나 interface를 변환하는 역할을 adapter 라고 한다. 구현에는 크게 분류해서 class adapter와 object adapter의 두가지 방식이 있다.
class adapter 방식은 기반이 되는 상위클래스를 하나 상속해서 그것에 살을 덧붙여 구현하는 방식으로 오버라이드를 사용할 수 있으며 새로 구현된 클래스의 인스턴스가 목적에 대한 직접적인 역할을 가지게 된다.
object adapter 방식은 별도의 클래스를 하나 만들어서 그 클래스에 필요한 다른 클래스(adaptee)의 인스턴스를 내부 조작에 따라 그때 그때 사용하는 것으로서, 유연하기는 하지만 직접적인 역할은 해당 기능을 하는 클래스이 인스턴스로 넘기게 된다. 이 경우 adaptee 클래스를 내부에서 바로 사용하는 것 보다는 adaptee에 사용을 원하는 용도의 하위클래스를 만들고, 그렇게 만들어진 하위클래스의 인스턴스를 사용하는것이 가장 좋다.