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