Das Performance-Handbuch: Quelltextmuster
Erscheinungsbild
Natürlich sind dies hier nur Kernsysteme, welche entsprechend angepasst werden sollten. Sie können jedoch schon unterschiedliche Ansätze erkennen.
Objektpool
[Bearbeiten]Ein Objektpool verwaltet eine Anzahl von Objekten, übernimmt deren Verwaltung, Erzeugung und Zerstörung und ermöglicht die Wiederverwendung von Instanzen.
Java
[Bearbeiten]// Beispiel 1 – Quelltext für einen Objektpool
// Quelle Java Spektrum 04/1998
public interface ReusableObject{
public void delete();
}
import java.util.Stack;
public class ObjectPool implements reusableObject{
private static Stack objectPool = new Stack();
public static ObjectPool newInstance (Class_1 cl_1, ..., Class_n cl_n){
if (objectPool.empty()){
return new ObjectPool(cl_1, ..., cl_n);
}
ObjectPool object = (ObjectPool) objectPool.pop();
object.init (cl_1, ..., cl_n);
return object;
}
private ObjectPool (Class_1 cl_1, ..., Class_n cl_n){
init(cl_1, ..., cl_n);
}
private void init (Class_1 cl_1, ..., Class_n cl_n){
// Initalisiere neues Objekt
}
public void delete(){
objectPool.push(this);
}
// sonstige Methoden der Klasse
Das folgende Beispiel hat den Vorteil, dass mehrere Objektpools für unterschiedliche Datentypen angelegt werden können.
// Beispiel 2 – Quelltext für einen Objektpool
// Quelle Java Magazin 06/2000
public final class ObjectPool{
private Stack pool = new Stack();
public ObjectPool(){
// Pooled Objekte anlegen
}
public Object getObject(){
return pool.pop();
}
public void recycleObject(Object o){
poop.push(o);
}
}