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();
}