@ 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();
}
}
댓글 없음:
댓글 쓰기