2012년 4월 24일 화요일

[Java Design Pattern_2]Adapter 샘플 코드2_상속을 통한 구현

@ 상속을 통한 Adapter 구현

- Target(대상) : 상속의 경우 인터페이스로 원하는 API를 만든다.

 public interface Print {  
      public abstract void printWeak();  
      public abstract void printStrong();  
 }  

- Adaptee(개조되는 쪽) : 기존에 사용되고 있는 클래스로서 Target의 API에 맞게 재구현되는 클래스이다.

 public class Banner {  
      private String string;  
      public Banner(String string) {  
           this.string = string;  
      }  
      public void showWithParen() {  
           System.out.println("(" + string + ")");  
      }  
      public void showWithAster() {  
           System.out.println("*" + string + "*");  
      }  
 }  

- Adapter(어댑터) : 상속의 경우 타겟은 인터페이스로 Adaptee는 상속으로 받아서 변환시킨다.

 public class PrintBanner extends Banner implements Print {  
   public PrintBanner(String string) {  
     super(string);  
   }  
   public void printWeak() {  
     showWithParen();  
   }  
   public void printStrong() {  
     showWithAster();  
   }  
 }  

- Client(의뢰자) : Target을 통해 일을 하는 클래스이다.

 public class Main {  
      public static void main(String[] args) {  
           Print p = new PrintBanner("Hello");  
           p.printWeak();  
           p.printStrong();  
      }  
 }  


댓글 없음:

댓글 쓰기