Il motivo per cui chiamare TileHandler in un contesto statico non è il miglior progetto possibile, è che accoppia componenti del tuo progetto che potrebbero altrimenti essere disaccoppiati.
Se scegli di avere più di un TileHandler in futuro, dovrai fare molto lavoro per adattarsi a questo cambiamento.
Se scegli di rimuovere TileHandler, dovrai fare molto lavoro per adattarsi a questa modifica.
Supponiamo che in futuro costruirai un livello / zona diverso, che gestirà le tessere in modo diverso dal tuo attuale TileHandler. Quindi devi avere un modo per specificare il metodo di gestione delle tessere da usare, oppure devi chiamare un gestore diverso.
Se il TileHandler è stato passato come parametro agli oggetti che lo usano, puoi semplicemente passarne uno diverso la prossima volta o impostare un gestore di piastrelle diverso sugli oggetti che lo usano in seguito.
Personalmente, accedo a molte cose nei miei giochi XNA da un contesto statico e presumo che non ne avrò mai più di uno.
Se vuoi essere in grado di riutilizzare il codice del motore di gioco nel tuo prossimo gioco, probabilmente dovrai riscrivere gran parte delle cose che attualmente hai scritto come statiche.
In breve:
A favore del non utilizzo del contesto statico:
Passare il più possibile gli oggetti come parametri disaccoppia gli elementi di gioco e ti consente di modificarli / riutilizzarli per i progetti attuali o futuri più facilmente. Ti permette anche di gestire un po 'più facilmente la complessità di grandi quantità di codice (pensa di avere centinaia di gestori statici nella tua classe di gioco, in un grande gioco).
A favore del contesto statico:
Dichiarare e accedere agli oggetti da un contesto statico semplifica la scrittura di piccoli giochi che non richiedono centinaia di gestori statici. Semplifica molti metodi e costruttori non richiedendo uno o più parametri extra a cui si accede invece staticamente.