저는 opengl es를 공부하고 있으며 터치와 키보드 이벤트를 추적하기 위해 "수영장"수업을 사용하는 것을 보았습니다.
풀 클래스가 어떻게, 왜 필요한지 설명해 주시겠습니까? 내가 읽은 내용에서 가비지 수집과 관련이 있으며 입력 클래스 수를 제한했습니다.
이 모든 것이 나에게 추상적 인 것처럼 보이므로 누군가 무슨 일이 일어나고 있는지 설명해 주시면 감사하겠습니다. 여기에 코드를 붙여 넣을 것입니다.
public Pool(PoolObjectFactory < T > factory, int maxSize) {
this.factory = factory;
this.maxSize = maxSize;
this.freeObjects = new ArrayList < T > (maxSize);
}
public T newObject() {
T object = null ;
if (freeObjects.isEmpty())
object = factory.createObject();
else
object = freeObjects.remove(freeObjects.size() - 1);
return object;
}
public void free(T object) {
if (freeObjects.size() < maxSize)
freeObjects.add(object);
}
PoolObjectFactory <TouchEvent> factory = new PoolObjectFactory <TouchEvent> () {
@Override
public TouchEvent createObject() {
return new TouchEvent();
}
Pool <TouchEvent> touchEventPool = new Pool <TouchEvent> (factory, 50);
TouchEvent touchEvent = touchEventPool.newObject();
. . . do something here . . .
touchEventPool.free(touchEvent);
감사!