본문으로 바로가기

02.어댑터 패턴

category 중요개념/디자인패턴 2022. 5. 15. 00:48
Adapter pattern
: Adapter는 실생활에서 110v를 220v로 변경해주거나, 그 반대로 해주는 흔히 돼지코라고 불리는 변환기를 예로 들 수 있다. 호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용 할 수 있도록 한다.

 

package com.company.design.adapter;

public interface Electronic110V {
    void powerOn();
}
package com.company.design.adapter;

public interface Electronic220V {
    void connect();
}

 

Electronic110V 클래스에 Electronic220V를 연결함.

package com.company.design.adapter;

public class SocketAdapter implements Electronic110V {

    private Electronic220V electronic220V;

    public SocketAdapter(Electronic220V electronic220V) {
        this.electronic220V = electronic220V;
    }

    @Override
    public void powerOn() {
        electronic220V.connect();
    }
}
package com.company.design.adapter;

public class HairDryer implements Electronic110V {
    @Override
    public void powerOn() {
        System.out.println("헤어드라이기 110V on");
    }
}
package com.company.design.adapter;

public class AirConditioner implements Electronic220V{
    @Override
    public void connect() {
        System.out.println("에어컨 220V on");
    }
}

- Electronic110V airAdapt = new SocketAdapter(airConditioner);

- 220V 에어컨을 110V로 연결해줌.

package com.company.design;

public class Main {

    public static void main(String[] args) {

        HairDryer hairDryer = new HairDryer();
        connect(hairDryer);

        AirConditioner airConditioner = new AirConditioner();
        Electronic110V airAdapt = new SocketAdapter(airConditioner);
        connect(airAdapt);
    }

    //콘센트
    public static void connect(Electronic110V electronic110V){
        electronic110V.powerOn();
    }

'중요개념 > 디자인패턴' 카테고리의 다른 글

01.싱글톤 패턴  (0) 2022.05.13