Queue를 이용한 오브젝트 풀 만들기

간단하게 테스트만 해보려고 단순 싱글톤화 시키고 테스트를 진행했다.

일단 class안에 struct으로 구조체를 하나 만들고

그안에 pool에 관련된 정보를 변수로 만들어 줬다.

굳이 struct으로 만든 이유는 메모리를 할당하는 공간이 class와 다르다는점에서

메모리 관리에 용이하다고 판단하고 안쓸 이유도 없기에 쓰게 되었다.

 

그뒤 struct을 제네릭을 활용한 리스트에 담아주고

Queue와 Dictionary까지 만들어 주었다.

 

다음 메서드에서 Dictionary를 초기화 해주고 리스트에 몇개가 담길지 모르니

foreach문을 -> for문 순으로 지정해둔 size만큼 오브젝트를 생성 해준다.

Queue를 사용할 것이기 때문에 비활성화 해주고 선언해둔 _poolObject에

생성되는 오브젝트를 담았다.

반복문이 끝나면 Dictionary에 Queue를 담아준다.

이때 변수로 만들어둔 ObjectName을 사용해서 키를 지정해준다.

 

이러면 초기 생성은 끝이다.

Queue에서 내보내는 부분과 다시 불러들이는 부분,

추가로 필요하다면 size를 넘어 새로 생성해줘야 되는 부분을

만들어주면 사용할 수 있을 것이다.

 

다른 곳에서 이제 매니저를 호출해서 생성된 오브젝트를 쓰게끔 만들려면

싱글톤화를 해야 했고, 그 Queue에 담긴 정보를 이름만으로 가져 갈 수 있게

만들고 싶어서 Dictionary도 써서 만들었는데 활용부분에서 살짝 막힌 감이 있다.

 

 

반응형