변환 어댑터는 110V, 330V 전력의 전자기기라도 어댑터를 사용하면 220V 전력을 공급받을 수 있다. 디자인 패턴 상에서도 전혀 다른 인자값을 가지고도 몇몇 알고리즘을 로직을 사용해서 수행할 수 있다.
기존 보유 알고리즘
Math.java
public class Math {
public static double twoTime(double num) {
return num * 2;
}
public static double half(double num) {
return num / 2;
}
}
기존 알고리즘의 double 타입의 인자 -> float 타입 인자로 메서드를 구현
기존 보유 알고리즘은 그대로 두고 Adapter 구현체를 사용하여 매개변수로 float 타입 인자 -> double 타입 인자로 변경한다.
Adapter.java
public interface Adapter {
public Float twiceOf(Float f);
public Float halfOf(Float f);
public long twiceOf(long l);
public long halfOf(long l);
}
public class AdapterImpl implements Adapter {
@Override
public Float twiceOf(Float f) {
return (float) Math.twoTime(f.doubleValue());
}
@Override
public Float halfOf(Float f) {
return (float) Math.half(f.doubleValue());
}
@Override
public long twiceOf(long l) {
return (long) Math.twoTime(l);
}
@Override
public long halfOf(long l) {
return (long) Math.half(l);
}
}
public class main {
public static void main(String[] args) {
Adapter adapter = new AdapterImpl();
System.out.println(adapter.twiceOf(100f)); // 200.0
System.out.println(adapter.halfOf(50f)); // 25.0
// long 으로 타입 변환
System.out.println(adapter.twiceOf(12L)); // 24
System.out.println(adapter.halfOf(15L)); // 7
}
}
참고 블로그 : https://catsbi.oopy.io/344dbe7b-9774-48fc-9c95-b554e9c1c4bc
위 링크에서 거의 대부분의 내용을 가져와서 썼을 뿐입니다. 저는 정리하는 용도로만 참고해서, 해당 참고 블로그 링크에서 보시는 게 더 이해도가 빠를 수 있습니다.