Opengl es üzerinde çalışıyorum ve gördüğüm bir örnek dokunmatik ve klavye olaylarını takip etmek için bir "Havuz" sınıfı kullanmak olduğunu.
Birisi bir havuz dersine nasıl ve neden ihtiyaç duyulduğunu açıklayabilir mi? Ne okuyordum ki çöp toplama ve yapılan giriş sınıflarının sayısını sınırlamak ile ilgili bir şey vardı.
Bu benim için biraz soyut görünüyor, bu yüzden biri neler olup bittiğini açıklayabilirse, bunu takdir edeceğim, buraya bazı kod yapıştırırım:
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);
Teşekkürler!