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