오답노트

[Java] 어댑터 패턴 본문

Java/디자인패턴

[Java] 어댑터 패턴

권멋져 2023. 7. 11. 17:10

어댑터 패턴

서로 다른 두 클래스를 연결하는 클래스를 만들어 주는 패턴이다.

 

A 인터페이스를 사용하는 클래스 (이하 A 클래스)에 B 인터페이스를 사용하는 클래스(이하 B 클래스)를 연결하고 싶다면

A 인터페이스를 사용하는 클래스를 만들고 생성자 인자로 B 인터페이스를 받는 클래스를 만들어 A 인터페이스를 Override하여 사용하면된다.

 

인터페이스

public interface Electronic110V {
    void poewrOn();
}
public interface Electronic220V {
    void connect();
}

인터페이스를 사용하는 클래스

public class AirConditioner implements Electronic220V{

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

    @Override
    public void poewrOn() {
        System.out.println("헤어드라이기 110V");
    }
}

어댑터 패턴을 적용한 클래스

public class SocketAdapter implements Electronic110V {
    private Electronic220V electronic220V;
    public SocketAdapter(Electronic220V electronic220V){
        this.electronic220V = electronic220V;
    }


    @Override
    public void poewrOn() {
        electronic220V.connect();
    }
}

실행

public class Main {
    public static void main(String[] args) {

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

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

    public static void connect(Electronic110V electronic110V){
        electronic110V.poewrOn();
    }
}

'Java > 디자인패턴' 카테고리의 다른 글

[Java] 파사드 패턴  (0) 2023.07.12
[Java] 옵저버 패턴  (0) 2023.07.12
[Java] 프록시 패턴  (0) 2023.07.11
[Java] 데코레이터 패턴  (0) 2023.07.11
[Java] static 변수와 싱글턴 패턴  (0) 2023.07.08