전기차충전기
[디자인패턴] 상태(State)
hyeok0724.kim@gmail.com
2022. 5. 25. 20:33
반응형
작성일: 22년 5월 25일
Contents
1. 배경
2. ModeSwitch 코드
3. ModeState 코드
4. Main 코드
1. 배경
- 토글 스위치를 누를때마다 Mode가 변경됨
2. ModeSwitch 코드
public class ModeSwitch {
private ModeState modeState = new ModeStateLight();
public void setModeState (ModeState _modeState){
modeState = _modeState;
}
public void onSwitch(){
modeState.toggle(this);
}
}
3. ModeState 코드
public interface ModeState {
public void toggle (ModeSwitch modeSwitch);
}
class ModeStateLight implements ModeState{
public void toggle (ModeSwitch modeSwitch) {
System.out.println("MODE LIGHT TO DARK");
modeSwitch.setModeState(new ModeStateDark());
}
}
class ModeStateDark implements ModeState {
public void toggle (ModeSwitch modeSwitch){
System.out.println("MODE DARK TO LIGHT");
modeSwitch.setModeState(new ModeStateLight());
}
}
4. Main 코드
final ModeSwitch modeSwitch = new ModeSwitch();
modeSwitch.onSwitch(); //"From Light To Dark 출력
modeSwitch.onSwitch(); //"From Dark To Light 출력
modeSwitch.onSwitch(); //"From Light To Dark 출력
modeSwitch.onSwitch(); //"From Dark To Light 출력
Referece:
https://www.youtube.com/watch?v=lJES5TQTTWE&t=564s
반응형