Saya telah mendengar berkali-kali tentang jebakan para Singleton / global, dan saya mengerti mengapa mereka begitu disukai.
Yang tidak saya mengerti adalah apa alternatif yang elegan dan tidak berantakan itu. Tampaknya alternatif untuk menggunakan Singletons / globals selalu melibatkan melewati objek satu juta level ke bawah melalui objek mesin Anda hingga mencapai objek yang membutuhkannya.
Misalnya, dalam game saya, saya memuat beberapa aset saat game dimulai. Aset ini tidak digunakan sampai nanti ketika pemain menavigasi menu utama dan memasuki permainan. Apakah saya harus meneruskan data ini dari objek Game saya, ke objek ScreenManager saya (terlepas dari kenyataan bahwa hanya satu Layar yang benar-benar peduli tentang data ini), kemudian ke objek Layar yang sesuai, dan di mana pun?
Sepertinya saya memperdagangkan data keadaan global untuk injeksi dependensi yang berantakan, meneruskan data ke objek yang bahkan tidak peduli dengan data kecuali untuk tujuan meneruskannya ke objek anak.
Apakah ini kasus di mana Singleton akan menjadi hal yang baik, atau adakah solusi elegan yang saya lewatkan?