2012년 4월 21일 토요일

[Java Design Pattern_2]Adapter 샘플 코드1_위임을 통한 구현


@ Target(대상)의 역할  - 위임의 경우 추상 클래스

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


@ Adaptee(개조 되는 쪽) - 실제적인 기능 클래스로서 Target의 인터페이스에 맞춰서 변화될 클래스

 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와 Target을 이어주는 클래스이다. 위임의 경우 Target클래스를 상속해서 Adaptee 클래스 인스턴스로 구현.

 public class PrintBanner extends Print {  
   private Banner banner;  
   public PrintBanner(String string) {  
     this.banner = new Banner(string);  
   }  
   public void printWeak() {  
     banner.showWithParen();  
   }  
   public void printStrong() {  
     banner.showWithAster();  
   }  
 }  

@ Client (의뢰자)의 역할 - Adapter를 사용하는 Main 클래스

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







댓글 없음:

댓글 쓰기