소프트웨어 관련/Design Pattern

[Design Pattern] Adapter Pattern

JJangGu 2022. 6. 4. 23:46

어댑터 패턴에 대해서 알아보겠습니다. 

 

이번에는 코드를 예제로 보여드리지는 않을건데요, 개념 자체가 어렵다고 생각되지는 않는 패턴입니다. 

 

Adapter Pattern

한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환합니다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있습니다.

 

책에서 이렇게 설명을 하고 있는데요, 그림을 보면 이해가 바로 됩니다. 흔히 저희가 해외 여행갈 때 콘센트가 안맞아서 그걸 변환하기 위해 가져가는 것도 어댑터라고 표현을 합니다. 

 

 

이렇게 중간에서 모양을 맞춰주는 것을 어댑터라고 표현하고, 이것이 객체지향 코드에서는 어떤 인터페이스를 클라이언트에서 요구하는 형태의 인터페이스에 적응히켜주는 역할을 하게 됩니다. 

 

클라이언트는 타겟 인터페이스에 맞게 구현되어 있고, 어댑터는 타겟 인터페이스를 구현하며 여기에 어댑티 인스턴스가 들어있습니다. 

 

 

클래스 다이어그램을 통해서 보면 이해가 더 쉽습니다. 어댑티를 새로 바뀐 인터페이스로 감쌀때 구성을 사용하고 있고, 클라이언트를 특정 구현이 아닌 인터페이스에 연결시키고 있죠. 인터페이스를 기준으로 코드가 만들어지므로, 다른 구현을 추가할 수도 있고 확장에 용이해집니다. 

 

어댑터 패턴은 이렇게 간단하게 소개를 마치겠습니다. 👍