타입 및 메서드 등의 호환성이 없는 객체 간 인터페이스를 이용해 적절히 가공해 작동하게 해주는 패턴
public class Calc{
public static double multiply(double num){
return num * 2;
}
public static double divide(double num){
return num / 2;
}
}
Adapter
public interface Adapter{
//float으로 타입 변환해 호환
public Float multiply(Float f);
public Float divide(Float f);
}
AdapterImpl
public class AdapterImpl implements Adapter{
@Override
public Float multiply(Float f){
return (float) Calc.multiply(f.doubleValue())
}
@Override
public Float divide(Float f){
return (float) Calc.divide(f.doubleValue())
}
}
Main
public class Main{
public static void main(String[] args){
Adapter adapter = new AdapterImpl();
System.out.println(adapter.multiply(100f)); //200.0
System.out.println(adapter.divide(100f)); //50.0
}
}