[Design Pattern] 어댑터 패턴 고찰



어댑터 패턴(Adapter Pattern)


1. 정의


 - 연관성 없는 두 객체 묶어 사용하기

 - 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환합니다. 이 패턴을 사용하면 다른 인터페이스와의 호환성 문제를 해결할 수 있습니다.


2. 의도


 - 이미 제공되는 기능이 형태가 달라, 필요로 하는 형태로 변경하고자 할 때


 - 활용

  - 기존의 클래스를 사용해야 하나 인터페이스가 수정되어야 하는 경우

  - 기존 라이브러리 모양을 달리하여 재사용하고자 할 경우


 - 예제

  - LED 프레임워크가 제공되어졌다.

   LED를 끄고 RGB 색상으로 켜고 하는 메서드들을 제공받았다.


 - 정리

  - Object Adapter 패턴을 일반적으로 많이 사용합니다. (Adaptee를 멤버변수로 활용하는 방식)

  - Object Adapter 패턴을 사용하면, Adaptee 클래스의 하위 클래스에 대해서도 소스코드 변경없이, 이를 활용하여 새로운 기능 추가가 편리합니다.


  하지만, 우리 하드웨어는 켜있는 상태에서 다른 색상을 켜면 색이 섞이는 현상이 생겨서, 무조건 한번 끄고 색상을 켜는 기능을 추가로 하고 싶다면?


  프레임워크를 수정해버리면, 하드웨어가 바뀌면 또 다시 프레임워크를 되돌려야 하는 부담감이 있습니다.


Question. Decorator vs. Adapter vs. Facade vs. (Proxy) ?




Question. If so, Difference between these in java?



Question. When to use these patterns?




댓글(3)

Designed by JB FACTORY