Я делаю игру в java, и я застреваю с проблемой дизайна. Мои ресурсы (изображения, анимации, звуки) хранятся в нескольких HashMaps, по одному для каждого типа ресурсов. Эти (статические) hashmaps находятся в статическом классе под названием Res. Когда объект нуждается в ресурсе, он обращается к одному из хэш-карт глобального класса, и если ресурс не существует, он автоматически загружается.Дизайн управления ресурсами
static Map<String, Sprite> sprites = new HashMap<>();
static Map<String, BufferedImage> images = new HashMap<>();
static Map<String, Clip> sounds = new HashMap<>();
static Map<String, Font> fonts = new HashMap<>();
Мой вопрос: эта конструкция достаточно хороша? Я читал, что статические функции - это плохая практика, но нужно ли мне каждый раз передавать экземпляр класса «Res»? Или есть другие альтернативы? А также, является ли эта система управления ресурсами хорошей практикой? Спасибо заранее!
Вы можете использовать шаблон одноэлементного дизайна (статический экземпляр под капотом). Люди любят преувеличивать, что синглтоны плохи. В большинстве случаев - да, но в вашем конкретном, используя один экземпляр кеша в желаемой ситуации. –
В чем преимущество синглтона над статическими методами/членами? – user10F64D4
Singletons сохраняют традиционный подход класса и не требуют, чтобы вы использовали статическое ключевое слово везде. Вначале они могут быть более требовательными, но значительно упростят архитектуру вашей программы. – Rudy