J'ai étudié l'opengl es et un exemple que j'ai vu utilisait une classe "Pool" pour garder une trace des événements tactiles et clavier.
Quelqu'un pourrait-il expliquer comment et pourquoi un cours de billard est nécessaire? D'après ce que je lisais, cela avait quelque chose à voir avec la collecte des ordures et la limitation du nombre de classes d'entrée créées.
Tout cela me semble un peu abstrait, donc si quelqu'un pouvait expliquer ce qui se passe, je l'apprécierais, je collerai du code ici:
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);
Merci!
la source