**한 클래스의 인터페이스
**를 클라이언트에서
사용하고자 할 때 **다른 인터페이스로 변환시켜 사용
**하는 패턴
어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다
기존 코드가 하던 일과 특정 인터페이스 구현체로 변환하는 작업을 각기 다른 클래스로 분리하여 관리 가능한 장점
linux 환경에서 사용하는 LinuxCalculator와 window 환경에서 사용하는 WindowCalculator가 있다고 가정
linuxCalculator는 덧셈만을 지원하고 windowCalculator는 뺄쎔만 지원합니다. CalculatorAdapter는
linux 환경에서 windowCalculator의 뺄셈 가능을 할 수 있게 해주는 역할을 하는 Adatepr입니다.
public class LinuxCalculator {
public double execute(double n1, double n2){
return n1+n2;
}
}
public class WindowCalculator {
public double execute(double n1, double n2){
return n1+n2;
}
}
public class CalculatorAdapter extends LinuxCalculator{
private WindowCalculator calculator;
public CalculatorAdapter(WindowCalculator calculator) {
this.calculator = calculator;
}
@Override
public double execute(double n1, double n2) {
return calculator.execute(n1, n2);
}
}
Main