본문 바로가기

객체지향

[디자인 패턴]AdapterPattern

반응형

[어뎁터패턴개념 ]

어댑터 패턴(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

 

[무료] 자바 디자인 패턴의 이해 - Gof Design Pattern - 인프런 | 강의

자바 디자인 패턴 이해하기 강좌 입니다. 여러가지 디자인 패턴들을 알아보며 디자인 패턴에 대한 이해도를 높이도록 도와줍니다. Gof Design Pattern을 자바 언어로 설명한 강의. 의미 있고 쉬운 예

www.inflearn.com

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