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

[Refactor] 오브젝트 풀링 관련 스크립트들 리팩토링 제안서 + abstract 클래스에 대한 코딩 컨벤션 #26

Closed
HUSK-321 opened this issue Sep 22, 2022 · 0 comments
Assignees
Labels
Refactor 리팩토링 관련 이슈입니다

Comments

@HUSK-321
Copy link
Member

개요

생각외로 오브젝트 풀링을 사용하는 친구들이 많은데 이들에 대한 일관성을 명시하고 이후 작업에 있어서 '오브젝트 풀링을 하는 객체' 와 '오브젝트 풀에서 관리되는 객체'를 분리해 작업할 수 있게 하기 위함.

현재 상태 다이어그램

오브젝트 풀 관련 스크립트들

오브젝트 풀 drawio

현재 나그네 NPC의 화살, 이모지 스포너, 공 굴리는 멧돼지의 돌들이 이에 속하고 있습니다. 공통점을 뽑아보면 아래와 같습니다.

  • Queue를 통한 오브젝트 관리
  • 위 큐가 비었을 때 보충하는 함수
  • 풀에서 오브젝트를 뽑아내는 함수 (return 값이 해당 오브젝트)
  • 풀에 다시 오브젝트를 넣는 함수

풀링 당하는 오브젝트 관련 스크립트들

오브젝트 풀 drawio (1)

각자 하는 핵심 로직은 다르지만 공통점이 하나 있습니다.

  • 다시 풀로 돌아가야 하는 로직이 있음
    이 로직을 두 프로그래머의 스타일 차이로 인해 달라졌지만 추상화를 했을 시 충분히 같은 로직으로 만들 수 있을 것 같음

결론

위 두개의 다이어그램을 보면 어느정도 공통점을 뽑아서 interface, abstract 형태로 뽑아냈습니다. 이것들을 기반으로 해서 이번 코드들에 대한 리팩토링을 진행하면 어떨까 합니다.


abstract

이전 interface에 대해서는 I 를 접두어로 사용하기로 했는데 abstract 클래스에 대해서는 이걸 어떻게 처리할지 의문.

찾아보니 자바의 경우에는 11년도 글에서 앞에 Abstract 를 붙인다고 하고 C#의 경우에는 딱히 없는걸로 판단됨.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Refactor 리팩토링 관련 이슈입니다
Projects
None yet
Development

No branches or pull requests

2 participants