Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat] World 이벤트 관리에 Observer 패턴 적용 #9

Closed
10 of 11 tasks
yymin1022 opened this issue Nov 29, 2024 · 0 comments · Fixed by #13
Closed
10 of 11 tasks

[feat] World 이벤트 관리에 Observer 패턴 적용 #9

yymin1022 opened this issue Nov 29, 2024 · 0 comments · Fixed by #13
Assignees
Labels
feat 기능 구현 및 디자인 패턴 적용

Comments

@yymin1022
Copy link
Member

yymin1022 commented Nov 29, 2024

어떤 패턴인가요?

현재 게임에서는 WorldStatsListener와 LevelWinListener를 통해 제한적으로 Observer 패턴이 구현되어 있습니다. 이를 확장하여 게임의 모든 주요 이벤트(토끼 이동, 토큰 사용, 블록 변경 등)를 체계적으로 관리하고자 합니다.

주요 컴포넌트:

  1. GameEvent (Subject): 게임 내 발생하는 모든 이벤트의 기본 인터페이스
  2. GameEventListener (Observer): 이벤트를 구독하고 처리하는 리스너 인터페이스
  3. GameEventManager: 이벤트와 리스너를 중앙에서 관리하는 매니저 클래스

작업 상세 내용

  • 새로운 이벤트 시스템 핵심 클래스 구현
    • GameEvent 인터페이스 생성
    • GameEventListener 인터페이스 생성
    • EventType enum 정의
    • GameEventManager 클래스 구현
  • World 클래스에 GameEventManager 통합
  • 기존 리스너들을 새로운 시스템으로 마이그레이션
    • WorldStatsListener 마이그레이션
    • LevelWinListener 마이그레이션
  • 게임 상태 변화 지점에 이벤트 발생 로직 추가
  • 단위 테스트 작성

참고 이미지 및 자료

Observer Pattern Structure

관련 파일:

  • /src/engine/src/rabbitescape/engine/World.java
  • /src/engine/src/rabbitescape/engine/WorldStatsListener.java
  • /src/engine/src/rabbitescape/engine/LevelWinListener.java
  • /src/engine/src/rabbitescape/engine/WorldChanges.java
@yymin1022 yymin1022 added the feat 기능 구현 및 디자인 패턴 적용 label Nov 29, 2024
@yymin1022 yymin1022 self-assigned this Nov 29, 2024
@yymin1022 yymin1022 linked a pull request Nov 30, 2024 that will close this issue
@yymin1022 yymin1022 linked a pull request Nov 30, 2024 that will close this issue
yymin1022 added a commit that referenced this issue Dec 2, 2024
…server

[fix] #9 World 이벤트 관리 Observer 패턴 관련 Test Code 수정
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat 기능 구현 및 디자인 패턴 적용
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant