일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- IOT Core
- esp8266
- homeassistant
- 전기차
- 급속충전기
- 전기차충전
- everon
- 보안
- 홈어시스턴트
- 충전기
- 서버리스
- AWS
- 라즈베리파이
- 에버온
- 디자인패턴
- Android
- 파이썬
- 플라스크
- 완속충전기
- thread
- flask
- dynamodb
- 안드로이드
- STM32
- lambda
- YMODEM
- raspberry
- 전기차충전기
- 펌웨어
- OCPP
Archives
- Today
- Total
Louie NRT Story
[디자인패턴] 상태(State) 본문
반응형
작성일: 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
반응형
'전기차충전기' 카테고리의 다른 글
[전기차충전기] SECC(GENIS) (0) | 2022.05.30 |
---|---|
[디자인패턴] 커멘드(Command) (0) | 2022.05.25 |
[전기차충전기] Simplemint 사용법(그리드위즈) (2) | 2022.05.25 |
[디자인패턴] 전략(Strategy) (0) | 2022.05.22 |
[디자인패턴] 싱글톤(Singleton) (0) | 2022.05.22 |
Comments