La razón por la que llamar a TileHandler en un contexto estático no es el mejor diseño posible, es que combina componentes de su diseño que de otra manera podrían desacoplarse.
Si elige tener más de un TileHandler en el futuro, tendrá que hacer mucho trabajo para acomodar este cambio.
Si elige eliminar TileHandler, tendrá que hacer mucho trabajo para acomodar este cambio.
Supongamos que construye un nivel / zona diferente en el futuro, que maneja los mosaicos de una manera diferente a su TileHandler actual. Luego, debe tener una manera de especificar el método de manejo de mosaicos que debe usar, o debe llamar a un controlador diferente.
Si el TileHandler se pasó como un parámetro a los objetos que lo usan, entonces simplemente puede pasar uno diferente la próxima vez, o establecer un controlador de mosaico diferente en los objetos que lo usan más tarde.
Personalmente, accedo a muchas cosas en mis juegos XNA desde un contexto estático, y asumo que nunca tendré más de uno.
Si quieres poder reutilizar el código del motor de tu juego en tu próximo juego, es probable que tengas que reescribir muchas de las cosas que actualmente has escrito como estáticas.
En breve:
A favor de no usar contexto estático:
Pasar objetos como parámetros tanto como sea posible desacopla los elementos del juego y le permite modificarlos / reutilizarlos para los proyectos actuales o futuros con mayor facilidad. También le permite administrar la complejidad de grandes cantidades de código un poco más fácil (piense en tener cientos de administradores estáticos en su clase de juego, en un gran juego).
A favor del contexto estático:
Declarar y acceder a objetos desde un contexto estático hace que sea más fácil escribir juegos pequeños que no requieren cientos de administradores estáticos. Simplifica muchos métodos y constructores al no requerir uno o más parámetros adicionales a los que se accede estáticamente.