2번째 위임을 사용한 어댑터 패턴(인스턴스를 사용한)

 

소스를 보면 어떻게 인스턴스를 사용한 것인지 이해가 될 것입니다.

 

 

public class Banner {

       private String string;

      

       Banner(String string){

             this.string = string;

       }

       public void showWithParen(){

             System.out.println("(" + string + ")");

       }

      

       public void showWithAster(){

             System.out.println("*" + string + "*");

       }

      

}

 

 

 

 

public abstract class Print {

       public abstract void printWeak();

       public abstract void printStrong();

}

 

 

 

public class PrintBanner extends Print//Print 추상클래스

{

       private Banner banner;

       PrintBanner(String string) {

             banner = new Banner(string);

       }

       public void printStrong() {//구현되지 않은 메소드를 구현함(DC 19V 필요해서)

             // TODO Auto-generated method stub

             banner.showWithAster();//근데 실제 구현내용을 보니 Banner클래스(AC220 공급됨)

                                               //결국 PrintBanner 어댑터의 역할을 하게됨

       }

       public void printWeak() {

             // TODO Auto-generated method stub

             banner.showWithParen();

       }

      

}

 

 

 

 

public class Main {

 

       /**

        * @param args

        */

       public static void main(String[] args) {

             // TODO Auto-generated method stub

                    Print p = new PrintBanner("Hello");

                    p.printStrong();

                    p.printWeak();

       }

 

}

 

 

 

결과

 

 

 

 

블로그 이미지

가카리

프로그래밍, 취업 및 직장생활, 주식 부동산 재테크 전문 블로그

댓글을 달아 주세요