어댑터 패턴(Adapter pattern)

0

jsp

목록 보기
15/39
post-thumbnail

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

출처: https://jusungpark.tistory.com/22 [정리정리정리]

  • Duck을 implement해서 Duck의 추상메서드인 quack(), fly()를 구현해야됨
    하지만 Turkey interface를 사용하고 싶음
    -> 중간에 Duck을 구현한 어댑터를 만들어서 quack(), fly()에서 Turkey의 추상메서드 gobble(), fly()를 실행
    =>객체는 Duck을 구현했는데 수행은 Turkey가 수행된다.

client는 Target I에 의존하고 있는데 Adaptee를 쓰고 싶음
-> 바로 못쓰니까 어댑터를 이용해 사용

Adapter

Target을 구현하고 생성자로 Adaptee객체를 받아서 Adaptee클래스의 멤버도 사용가능 -> Target의 추상메서드에서 Adaptee의 메서드를 실행하면 어댑터를 사용했을때 Adaptee의 기능을 동작시킬 수 있다.

client

생성자로 Adaptee객체를 받은 Target을 구현한 Adapter객체를 만든다. 내부에 Target객체를 만들어놓고 생성자로 받은 Adapter객체로 셋팅해놓으면 Adapter클래스의 멤버들이 사용됨
그 안에서는 Adaptee의 메서드 동작.
-> Target을 구현하고 있는 어댑터를 이용해 그 객체로 Adaptee의 멤버에 접근해서 실행가능하다!

0개의 댓글