본문 바로가기

JAVA/디자인 패턴

3. 어뎁터 패턴

어뎁터 패턴은 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴, 호환성이 없는 인터페이스 떄문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다.

 

Adapter는 실생활에서 110V를 220V로 변경해주거나 그 반대로 해주는 흔히 돼지코 라고 불리는 변환기로 예로 들 수 있다.

SOLID중에서 개방폐쇄 원칙을 따른다.

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

 

public class Cleaner implements Electronic220V{
    @Override
    public void connect() {
        System.out.println("청소기 220V ON");
    }
}
public class AirConditioner implements Electronic220V{
    @Override
    public void connect() {
        System.out.println("에어컨 200V on");
    }
}
public class SocketAdapter implements Electronic110V{

    private Electronic220V electronic220V;

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

    @Override
    public void powerOn() {
        electronic220V.connect();

    }
}
Cleaner cleaner = new Cleaner();
Electronic110V adapter = new SocketAdapter(cleaner);
connect(adapter);

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

SocketAdapter를 통해

다른 볼트를 사용하여 호환되지 않은 기계(ex. cleaner, airConditioner)가 변환되어 작동할 수 있게 변환하여 동작할 수 있게 해주는 것을 볼 수 있다.

 

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

6. 옵저버 패턴  (0) 2022.06.29
5. 데코레이터 패턴  (0) 2022.06.25
4. 프록시(Proxy) 패턴  (0) 2022.06.25
2. 싱글톤 패턴  (1) 2022.06.24
1. 디자인 패턴  (0) 2022.06.24