STRUCTURAL
Flyweight
Usare condivisione per supportare efficientemente un grande numero di oggetti a grana fine.
Esempi di Codice
Flyweight per Forest Rendering
Rendering efficiente di migliaia di alberi in una foresta condividendo mesh e texture.
JAVASCRIPT
Loading...
Esempi nel Mondo Reale
Text editors - condivisione di character glyphs
Game development - sprite sharing per particles, bullets, enemies
UI frameworks - condivisione di icon/image resources
String pooling - Java String interning
Database connection pooling - riuso di connessioni
Quando Usarlo
Quando hai un grande numero di oggetti simili
Quando la memoria è una preoccupazione critica
Quando la maggior parte dello stato può essere estrinseco
Quando l'identità degli oggetti non è importante
Quando NON Usarlo
Quando hai pochi oggetti
Quando lo stato è prevalentemente estrinseco
Quando la complessità aggiunta non giustifica il risparmio di memoria
Pattern Correlati