Type object
Un pattern che definisce un «tipo» come dato in un oggetto anziché come sottoclasse, così da creare nuove varietà a runtime senza nuovo codice.
Invece di una classe per ogni razza di mostro (Goblin, Troll, Dragon), ogni mostro tiene un riferimento a un type object con gli attributi condivisi (salute, attacco, sprite). Aggiungere una nuova razza diventa una voce di dati, non una ricompilazione. Il pattern è descritto in Game Programming Patterns ed è la spina dorsale del data-driven design e dei giochi modificabili.
La parentela con il flyweight è evidente: molte istanze condividono un unico type object immutabile, invece di portarsi ciascuna una copia degli stessi dati.