일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 펌웨어
- homeassistant
- raspberry
- STM32
- 보안
- 충전기
- 서버리스
- AWS
- YMODEM
- 홈어시스턴트
- 디자인패턴
- 전기차충전
- 완속충전기
- 안드로이드
- everon
- 플라스크
- OCPP
- 에버온
- lambda
- 라즈베리파이
- 전기차충전기
- 급속충전기
- esp8266
- dynamodb
- 전기차
- thread
- flask
- 파이썬
- Android
- IOT Core
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