반응형
[어뎁터패턴개념 ]
어댑터 패턴(Adapter pattern)은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다.
https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4
public class Main {
public static void main(String[] args){
Adapter adapter =new AdapterImpl();
System.out.println( adapter.twiceOf(100f));
System.out.println(adapter.halfOf(88f));
}
}
public class Math {
public static double twoTime(double num){return num*2;}
public static double half(double num){return num/2;}
//강화된 알고리즘
public static Double doubled(Double d){return d*2;}
}
//기존 Math를 가지고와서 이용하는경우를 예로
public interface Adapter {
//원하는기능
Float twiceOf(Float f);
Float halfOf(Float f);
}
public class AdapterImpl implements Adapter{
//이미구현되어있는객체를 사용해서 해보자
//요구사항에 맞게 변환할수있다.
@Override
public Float twiceOf(Float f) {
return Math.doubled(f.doubleValue()).floatValue(); //강화된 알고리즘 추가시, 여기 클래스에서만 수정하면, 편하다
}
@Override
public Float halfOf(Float f) {
System.out.println("절반함수호출"); //우리쪽에서 해당로그를 찍고싶을때 , 로그를 찍는방식을 제공할수잇다.
return (float) Math.half(f.doubleValue()); //더블형인자로 받아서 float로 또 변환해줘야함
}
}
반응형
'객체지향' 카테고리의 다른 글
[디자인패턴] Composite pattern (0) | 2022.03.27 |
---|---|
[디자인패턴]Template Method Pattern (0) | 2022.03.27 |
[디자인패턴]StrategyPattern (0) | 2022.03.27 |
Exception (0) | 2021.06.01 |
추상화와 인터페이스 (0) | 2018.08.23 |