- '이미 제공되어 있는 것'과 '필요한 것' 사이의 '차이'를 없애주는 디잔인 패턴 이 Adapter 패턴 (일명 : Wrapper 패턴)
 
  - Adapter 패턴의 종류
    * 클래스에 의한 Adapter 패턴 (상속을 사용한 Adapter 패턴)
      - 단점 : 상속 을 활용하기 때문에 유연하지 못하다.
      - 장점 : 어댑터를 전체를 다시 구현할 필요가 없다.(빠르다는 얘기)
      - 주의 : 자바는 다중상속을 지원하지 않는다. (Ex - public class Adapter extends Target, Adaptee{} )
        EX)
        public class Adaptee {
     public void specificRequest() {
         System.out.println("Adaptee.speificRequest()" );
     }
 }

        public interface Target{
     public void request():
 }
       
        public class Adapter extends Adaptee implements Target {
     public void request() {
         this.specificRequest();  // 다중상속
     }
 }

 public class Clinet {
     public static void main(String args[] ) {
         Target target = new Adapter();
  target.request();
     }
 }

 결과 : Adaptee.speificRequest(); 출력 된다.
 대충 소스를 보면 이해는 되겟는데... 설명하라면 못하겠다 -0-

 

 

 

    * 인스턴스에 의한 Adapter 패턴 (위임을 사용한 Adapter 패턴)
    - 단점 : Adapter 클래스의 대부분의 코드를 구현해야 하기 떄문에 효율적이지 못하다.
    - 장점 : 구성(Composition) 를 사용하기 때문에 더 뛰어나다(유연하다)
      EX)
      public class Adaptee {
          public void specificRequest() {
       System.out.println("Adaptee.speificRequest()" );
   }
      }

      public interface Target {
          public void request();
      }

      public class Adapter implements Target {
          Adaptee adaptee = new Adaptee();  // 객채 생성

   public void request() {
       adaptee.specificRequest():  // 객체 연결
   }
      }

      public class Clinet {
          public static void main(String args[] ) {
       Target target = new Adapter();

       target.request();
   }
      }
       결과 : Adaptee.speificRequest(); 출력 된다.

 

 

 

 

 

 

 

 

 

'공부 > JAVA' 카테고리의 다른 글

JAVA_[Thread]  (0) 2012.06.23
JAVA_[객체_직렬화]  (0) 2012.06.23
JAVA_[Eclipse_SerialVersionUID]  (0) 2012.06.23
JAVA_[코딩_지침]  (0) 2012.06.21
JAVA_[StringTokenizer 과 Split 의 차이]  (0) 2012.06.21

+ Recent posts