Alasan mengapa memanggil TileHandler dalam konteks statis bukanlah desain terbaik, karena menggabungkan komponen desain Anda yang dapat dipisahkan.
Jika Anda memilih untuk memiliki lebih dari satu TileHandler di masa mendatang, Anda harus melakukan banyak pekerjaan untuk mengakomodasi perubahan ini.
Jika Anda memilih untuk menghapus TileHandler, Anda harus melakukan banyak pekerjaan untuk mengakomodasi perubahan ini.
Misalkan Anda membangun level / zona yang berbeda di masa depan, yang menangani ubin dengan cara yang berbeda dari TileHandler Anda saat ini. Maka Anda harus memiliki cara untuk menentukan metode penanganan ubin yang akan digunakan, atau Anda perlu memanggil penangan yang berbeda.
Jika TileHandler dilewatkan sebagai parameter ke objek yang menggunakannya, maka Anda bisa dengan mudah memberikan yang lain kali, atau mengatur pawang ubin yang berbeda pada objek yang menggunakannya nanti.
Secara pribadi, saya mengakses banyak hal di game XNA saya dari konteks statis, dan berasumsi bahwa saya tidak akan pernah memiliki lebih dari satu.
Jika Anda ingin dapat menggunakan kembali kode mesin gim Anda di gim berikutnya, Anda mungkin harus menulis ulang banyak hal yang saat ini Anda tulis sebagai statis.
Pendeknya:
Agar tidak menggunakan konteks statis:
Melewati objek sebagai parameter sebanyak mungkin memisahkan elemen-elemen permainan, dan memungkinkan Anda untuk memodifikasi / menggunakan kembali mereka untuk proyek saat ini atau masa depan dengan lebih mudah. Ini juga memungkinkan Anda untuk mengelola kompleksitas kode dalam jumlah besar sedikit lebih mudah (bayangkan memiliki ratusan manajer statis di kelas gim Anda, dalam gim besar).
Mendukung konteks statis:
Mendeklarasikan dan mengakses objek dari konteks statis membuatnya lebih mudah untuk menulis game kecil yang tidak memerlukan ratusan manajer statis. Menyederhanakan banyak metode dan konstruktor dengan tidak memerlukan satu atau lebih parameter tambahan yang diakses secara statis.