La raison pour laquelle appeler TileHandler dans un contexte statique n'est pas la meilleure conception possible, c'est qu'elle couple des composants de votre conception qui pourraient autrement être découplés.
Si vous choisissez d'avoir plus d'un TileHandler à l'avenir, vous devrez faire beaucoup de travail pour s'adapter à ce changement.
Si vous choisissez de supprimer TileHandler, vous devrez faire beaucoup de travail pour s'adapter à ce changement.
Supposons que vous construisez un niveau / zone différent à l'avenir, qui gérera les tuiles d'une manière différente de votre TileHandler actuel. Vous devez alors soit avoir un moyen de spécifier la méthode de traitement des tuiles à utiliser, soit appeler un autre gestionnaire.
Si le TileHandler a été transmis en tant que paramètre aux objets qui l'utilisent, vous pouvez simplement en passer un autre la prochaine fois, ou définir un autre gestionnaire de tuiles sur les objets qui l'utilisent plus tard.
Personnellement, j'accède à beaucoup de choses dans mes jeux XNA à partir d'un contexte statique, et je suppose que je n'en aurai jamais plus d'un.
Si vous voulez pouvoir réutiliser votre code moteur de jeu dans votre prochain jeu, vous devrez probablement réécrire une grande partie des éléments que vous avez actuellement écrits sous forme statique.
En bref:
Pour ne pas utiliser de contexte statique:
Le passage d'objets en paramètres autant que possible dissocie les éléments du jeu, et vous permet de les modifier / réutiliser plus facilement pour les projets en cours ou à venir. Il vous permet également de gérer un peu plus facilement la complexité de grandes quantités de code (pensez à avoir des centaines de gestionnaires statiques dans votre classe de jeu, dans un grand jeu).
En faveur du contexte statique:
La déclaration et l'accès aux objets à partir d'un contexte statique facilitent l'écriture de petits jeux qui ne nécessitent pas des centaines de gestionnaires statiques. Simplifie de nombreuses méthodes et constructeurs en ne nécessitant pas un ou plusieurs paramètres supplémentaires accessibles à la place de manière statique.