Object Pool

Architecture 🟡 Mid

Definition

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.
#architecture#interview#gof#creational#performance