Room 타이머 구현 #28
waterricecake
started this conversation in
General
Replies: 1 comment 1 reply
-
두번째로 고민해 본건데 우리가 /rooms/info 할때 어차피 startTime, endTime timestamp로 보내줘야하자나요? 그래서 room에 startTime, endTime 기록해두고 request /rooms/info 올때 requestheader의 timeStamp(header에는 항상 시간이 저장되니까)로 현재 시각 비교해서 그 시간 이 후이면 다음 state로 넘어가게 구현하는것... |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
제가 이번에 Timer 이동하는거 구현해봤는데 계속 고민되드만요. 일단 요약하자면 상태패턴 + 연쇄 패턴으로 방 상태를 구현하였는데 각 구현체가 Timer를 돌려서 다음 구현체를 생성하고 돌리는 형식으로 구현했습니다.
#27, 그리고 branch feature/27 보시면서 확인해주세요
이게 구현하면서 TimerTask에서 run을 통해 setNext(Room room)을 호출하면서 room을 넣어줄려면 구현체가 room을 필드로 가지고 있어야 해서 어쩔수없이 state와 Room이 순환참조를 하게되는데 찝찝한데 그래서 한번 여러분의 생각을 들어보고 싶어서 올려봅니다.
참고로 상태패턴 + 연쇄패턴을 사용하게된 이유는
상태의 행동을 (timer지나가는것) 상태가 관리하기 때문에 방의 역할이 줄어듬
상태 자체를 상태들을 생성하고 바꿔주는 역할도 상태가 하게됨
추후 각 상태별 정책을 추가하기 편할것이라고 판단 (run 혹은 startTimer 에 새로운 정책을 추가하면됨)
아 또 테스트 아직 고민 중이네요... timer 지나게 테스트 해보신분 있으신가요?
Beta Was this translation helpful? Give feedback.
All reactions