Я безліч разів чув про підводні камені синглів / глобалістів, і розумію, чому вони так часто нахмурюються.
Я не розумію, що це елегантна, безладна альтернатива. Здається, що альтернатива використанню одиночних / глобальних завжди передбачає проходження об'єктів на мільйон рівнів вниз через об'єкти вашого двигуна до тих пір, поки вони не дойдуть до об'єктів, які їм потрібні.
Наприклад, у своїй грі я передзавантажую деякі активи, коли гра починається. Ці активи не використовуються набагато пізніше, коли гравець переходить через головне меню та входить у гру. Чи повинен я передавати ці дані з мого об'єкта Game, в мій об'єкт ScreenManager (незважаючи на те, що лише один Екран насправді піклується про ці дані), потім у відповідний об’єкт Screen та деінде?
Просто здається, що я торгую глобальними даними про стан для вбудованої залежності, передаючи дані об'єктам, які навіть не цікавляться цими даними, за винятком цілей передачі їх дочірнім об'єктам.
Це той випадок, коли Сінглтон був би хорошою справою, або є якесь елегантне рішення, якого я відсутній?