재사용 가능한 객체들을 모아놓은 객체 풀 클래스를 정의한다.

여기에 들어가는 객체는 현재 자신이 ‘사용 중’ 인지 여부를 알 수 있는 방법을 제공해야 한다.

  1. 풀은 초기화될 때 사용할 객체들을 미리 생성하고 (보통 같은 종류의 객체를 연속된 배열에 넣는다), 이들 객체를 ‘사용 안함’ 상태로 초기화 한다.
  2. 새로운 객체가 필요하면 풀에 요청한다.
  3. 풀은 사용 가능한 객체를 찾아 ‘사용 중’ 으로 초기화한 뒤 반환한다.
  4. 객체를 더 이상 사용하지 않는다면 ‘사용 안 함’ 상태로 되돌린다

이런 식으로 메모리나 다른 자원 할당을 신경 쓰지 않고 마음껏 객체를 생성, 삭제할 수 있다.

언제 쓸 것인가?

객체 풀 패턴은 경량 패턴과 비슷한 점이 있다. 둘 다 재사용 가능한 객체 집합을 관리한다. 차이점은 ‘재사용’의 의미에 있다.

코드링크