[디자인패턴] 어댑터 패턴(Adater patterns)

2016. 11. 9. 17:40프로그래밍/디자인패턴

    목차

어댑터 패턴(Adater patterns)


정의

한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른

인터페이스로 변환합니다.

어댑터를 이용하면 인터페이스 호환성 문제에 같이 쓸 수 없는

클래스들을 연결해서 사용 할 수 있습니다.


내용


-신규 클래스에 이전 클래스를 연동해서 사용이 가능하게 할 수 있다.
  예) 110V 전자제품을 220V로 변환 해주는 어댑터를 꼽아 사용하는 형태와 유사하다.

  • 형식을 맞추어 사용하도록 하는 구조
  • 기존 객체를 원하는 형식으로 바꾸어(adapt) 사용하는 방식
  • 기존 객체의 인터페이스 호환성을 맞춰줌
  • 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴
  • 클래스 어댑터(상속을 이용) + 인스턴스 어댑터(위임을 이용)



- 어댑터 패턴을 구현하는 방식에는 두가지 형태가 존재 합니다.

  • 클래스에 의한 Adapter 패턴(상속을 사용한 Adapter 패턴)
    • 단점: 상속(Generalzation)을 활용하기때문에 유연하지 못하다.
    • 장점: 어댑터(Adapter)를 전체를 다시 구현할 필요가 없다.(빠르다)
    • 주의: 클래스 어댑터 에서는 다중상속을 이용하기 때문에 자바 에서는 쓸 수 없습니다.



  • 인스턴스에 의한 Adapter 패턴(위임을 사용한 Adapter 패턴)
    • 단점: 어댑터(Adapter)클래스의 대부분의 코드를 구현해야하기때문에 효율적이지 못하다
    • 장점: 구성(Composition)을 사용하기 때문에 더 뛰어나다.(유연하다)