He estado estudiando opengl es y un ejemplo que vi fue usar una clase "Pool" para hacer un seguimiento de los eventos táctiles y del teclado.
¿Podría alguien explicar cómo y por qué se necesita una clase de grupo? Por lo que estaba leyendo, tenía algo que ver con la recolección de basura y la limitación del número de clases de entrada que se realizan.
Todo esto me parece un poco abstracto, así que si alguien pudiera explicar lo que está sucediendo, lo agradecería, pegaré un código aquí:
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);
¡Gracias!
fuente