ฉันเคยได้ยินครั้งนับไม่ถ้วนเกี่ยวกับข้อผิดพลาดของ Singletons / กลมและฉันเข้าใจว่าทำไมพวกเขาถึงขมวดคิ้วบ่อยครั้ง
สิ่งที่ฉันไม่เข้าใจคือทางเลือกที่หรูหราและไม่ยุ่งคืออะไร ดูเหมือนว่าทางเลือกในการใช้ Singletons / globals เกี่ยวข้องกับการส่งผ่านวัตถุเป็นล้านระดับผ่านวัตถุเครื่องยนต์ของคุณจนกว่าจะถึงวัตถุที่ต้องการ
ตัวอย่างเช่นในเกมของฉันฉันโหลดเนื้อหาบางส่วนไว้ล่วงหน้าเมื่อเกมเริ่มต้นขึ้น สินทรัพย์เหล่านี้ไม่ได้ใช้จนกว่าจะถึงเวลาต่อมาเมื่อผู้เล่นนำทางผ่านเมนูหลักและเข้าสู่เกม ฉันควรจะส่งข้อมูลนี้จากวัตถุเกมของฉันไปยังวัตถุ ScreenManager ของฉัน (แม้ว่าข้อเท็จจริงที่ว่ามีเพียงหน้าจอเดียวที่ให้ความสำคัญกับข้อมูลนี้) จากนั้นไปยังวัตถุหน้าจอที่เหมาะสมและที่อื่น ๆ
ดูเหมือนว่าฉันกำลังแลกเปลี่ยนข้อมูลสถานะทั่วโลกสำหรับการฉีดขึ้นต่อกันที่ยุ่งเหยิงส่งผ่านข้อมูลไปยังวัตถุที่ไม่สนใจข้อมูลยกเว้นจุดประสงค์ในการส่งต่อไปยังวัตถุลูก
นี่เป็นกรณีที่ Singleton น่าจะเป็นสิ่งที่ดีหรือมีวิธีแก้ปัญหาอันงดงามที่ฉันขาดไปหรือไม่?