20220907
한 번에 끝내는 Java/Spring 웹 개발 마스터
1) Electronic110V
package com.company.design.adaptor;
public interface Electronic110V {
void powerOn();
}
2) Electronic220V
package com.company.design.adaptor;
public interface Electronic220V {
void connect();
}
3) HairDryer
package com.company.design.adaptor;
public class HairDryer implements Electronic110V {
public void powerOn() {
System.out.println("헤어 드라이기 110v on");
}
}
4) Cleaner
package com.company.design.adaptor;
public class Cleaner implements Electronic220V {
@Override
public void connect() {
System.out.println("청소기 220v on");
}
}
5) SocketAdaptor
package com.company.design.adaptor;
import com.company.design.singleton.SocketClient;
public class SocketAdaptor implements Electronic110V {
private Electronic220V electronic220V;
public SocketAdaptor(Electronic220V electronic220V) {
this.electronic220V = electronic220V;
}
@Override
public void powerOn() {
electronic220V.connect();
}
}
- 이해하기 쉽게 110v로 작동하는 가전기구와 220v로 작동하는 가전기구 2개를 나누어서 220v짜리를 사용하는 기구가 110v기구를 사용하려면 전압변환기가 필요하다는 것을 예시로 들었다.
- SocketAdaptor부분을 통해서 110v를 implements받고 220v를 실행하게 하여 문제를 해결하는 방식이었다.