Object Pool
Architecture 🟡 MidDéfinition
Maintient un ensemble d'objets réinitialisés prêts a l'emploi pour éviter le coût de création/destruction répétée. Gère le cycle de vie acquire/release.
Analogie
Les caddies au supermarché : 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 réinitialiser les objets avant de les remettre dans le pool — données résiduelles.