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();
}
}
결과
'프로그래밍 > 자바 디자인패턴' 카테고리의 다른 글
디자인 패턴 ProtoType패턴 (0) | 2012.08.03 |
---|---|
디자인 패턴 singleton 패턴 (0) | 2012.08.03 |
디자인 패턴 Factory Method 패턴 (0) | 2012.08.03 |
디자인 패턴 Template Method 패턴 (0) | 2012.08.03 |
디자인 패턴 Adapter패턴 상속을 사용한 Adapter패턴 (0) | 2012.08.03 |
디자인패턴 Chain of Responsibility 패턴 (0) | 2012.08.02 |
디자인 패턴 Visitor 패턴 (0) | 2012.08.01 |
디자인 패턴 Decorator 패턴 (0) | 2012.08.01 |