🧷 12볼트 노트북과 100볼트의 AC전원을 연결하려면? ->AC 어댑터 필요!
🧷 우리가 알고 있는 것은 100볼트 일때 어떻게 12볼트로 변환시킬까? -> 어댑터 패턴
🧷필요한 메소드를 빨리 만들 수 있음
🧷버그가 발생해도 기존 클래스는 오류가 없으므로 Adapter 클래스 중점으로 조사 ->검사가 쉬워짐
🧷이미 만들어진 클래스를 인터페이스에 맞게 개조시킬때
1) 제공되고 있는 것 -> Banner 클래스 (showWithParen, showWithAster)
2)교환장치 (어댑터) -> PrintBanner 클래스
3)필요한 것 ->Print 인터페이스 (printWeak, printStrong)
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+"@";)
}
}
🌈Print 인터페이스
public interface Print{
//추상메소드로 뼈대만 구현
public abstract void printWeak();
public abstract void printStrong();
}
🌈PrintBanner 클래스
Banner 클래스를 상속받음 & Print 인터페이스 구현
public class PrintBanner extends Banner implements Print{
public PrintBanner(String string){
super(string);
}
public void printWeak(){ //Print 인터페이스 구현
showWithParen(); //Banner 클래스 메소드 호출
}
public void printStrong(){
showWithAster();
}
}
🌈Main class
public class Main{
public static void main(String[] args){
Print p=new PrintBanner("Hell0");
p.printWeak(); //PrintBanner 클래스
p.printStrong();
}
}
🌈Print 추상 클래스
public abstract class Print{ //Print클래스!!!
public abstract void printWeak();
public abstract void printStrong();
}
🌈PrintBanner 클래스
public class PrintBanner extends Print{ //Print class 상속
private Banner banner; //banner 객체 생성-> 배너 필드를 매개로 메소드 호출 = 위임..!
public PrintBanner (String string){
this.banner=new Banner(String);
}
public void printWeak(){
banner.showWithParen(); //위임
}
public void printStrong(){
banner.showWithAster();
}
}