Object Pool
Architecture 🟡 MidDefinition
Maintient un ensemble d'objets reinitialises prets a l'emploi pour eviter le cout de creation/destruction repetee. Gere le cycle de vie acquire/release.
Analogie
Les caddies au supermarche : tu en prends un disponible, tu l'utilises, puis tu le rends.
Exemple de code
class Pool {
#available = [];
acquire() { return this.#available.pop() ?? create(); }
release(obj) { obj.reset(); this.#available.push(obj); }
}
Cas d'usage
Pool de connexions DB, threads, ou objets graphiques dans un moteur de jeu.
Anti-pattern
Ne pas reinitialiser les objets avant de les remettre dans le pool — donnees residuelles.