Причина того, що виклик TileHandler в статичному контексті не є найкращим можливим дизайном, полягає в тому, що він з'єднує компоненти вашого дизайну, які в іншому випадку можуть бути роз'єднані.
Якщо ви вирішите мати більше одного TileHandler у майбутньому, вам доведеться зробити багато роботи, щоб прийняти цю зміну.
Якщо ви вирішите видалити TileHandler, вам доведеться зробити багато роботи, щоб пристосувати цю зміну.
Припустимо, ви будуєте інший рівень / зону в майбутньому, яка обробляє плитки не так, як ваш поточний TileHandler. Тоді вам або потрібно мати спосіб вказати метод керування плитками для використання, або вам потрібно зателефонувати до іншого обробника.
Якщо TileHandler був переданий як параметр для об'єктів, які його використовують, то ви можете просто передати наступний раз інший або встановити інший обробник плитки для об'єктів, які його використовують пізніше.
Особисто я отримую доступ до багатьох речей у своїх іграх XNA зі статичного контексту і вважаю, що ніколи не буду мати більше ніж одну з них.
Якщо ви хочете мати змогу повторно використовувати свій ігровий код у наступній грі, вам, ймовірно, доведеться переписати велику частину речей, які ви зараз написали як статичні.
Коротко:
На користь не використовувати статичний контекст:
Передача об'єктів як параметрів максимально роз'єднує ігрові елементи, і дозволяє легше змінювати / використовувати їх для поточних чи майбутніх проектів. Це також дозволяє трохи легше керувати складністю великої кількості коду (подумайте про те, щоб мати сотні статичних менеджерів у вашому ігровому класі, у великій грі).
На користь статичного контексту:
Оголошення та доступ до об'єктів із статичного контексту полегшує написання невеликих ігор, для яких не потрібні сотні статичних менеджерів. Спрощує багато методів і конструкторів, не вимагаючи одного або декількох додаткових параметрів, які замість них отримують статичний доступ.