Android libgdx, как избежать статического метода и перечисления

Хорошо, теперь я действительно сумасшедший и запутанный. Я начал небольшой проект на Android с libgdx, и я два дня работал, чтобы узнать, что менеджер активов по какой-то причине не должен быть статичным. Я также пробовал вариант singleton, но есть статический метод getInstance, который меня беспокоит. Я не уверен, что можно использовать статический метод вместо класса управления активами.

Управление своими активами

Итак, я нашел здесь хорошее решение, которое говорило мне использовать для этой цели перечисление. Я никогда не использовал его раньше, поэтому я изучал его в течение другого дня, пока сегодня вечером я не нашел это видео, в котором мне говорят избегать перечисления на Android.

Цена ENUMS

Есть ли другая альтернатива? Или я что-то не так с этими двумя источниками? Я новичок в Android libgdx, и это очень расстраивает, когда вы не можете понять, как правильно сделать что-то, что вы обычно знаете, как это делать в других обстоятельствах. Моя проблема не в кодировании, а в понимании проблемы Static или Enum в Android и в том, как избежать их в моем диспетчере активов.


person Community    schedule 13.12.2016    source источник
comment
Не могли бы вы уточнить решение enum, на которое вы ссылаетесь?   -  person John    schedule 13.12.2016
comment
В чем проблема? Зачем вам это должно быть статическим или перечислимым? Что не так с ООП?   -  person Xoppa    schedule 13.12.2016
comment
Потому что я не знаю, как это сделать по-другому... Все учебники, которые я нашел, используют либо статический метод, либо перечисление... И на самом деле оба работают очень хорошо... Но я падаю на эти две документации, которые предлагают избегать их обоих! :/   -  person    schedule 14.12.2016
comment
Похоже, вы должны найти разные учебники. Или хотя бы не просто использовать их как есть, а хотя бы попытаться понять, почему они делают именно так. В любом случае, вам не нужны static или enum для использования какого-либо класса (будь то AssetManager, Screen, Sprite, GameObject и т. д., для этого не имеет значения).   -  person Xoppa    schedule 14.12.2016


Ответы (1)


Я использую синглтон с нестатическим экземпляром диспетчера активов, и он работает довольно хорошо (3 игры для Android / 3 для iOS). Так что это не должно быть проблемой.

person Marius    schedule 13.12.2016
comment
Я пробовал это, но ваш метод getInstance() должен быть статическим, чтобы иметь к нему доступ? нет? - person ; 14.12.2016
comment
Как и в любом синглтоне, у вас есть только один его экземпляр. Таким образом, метод getInstance() должен быть статическим. - person Marius; 14.12.2016
comment
Тогда это мое рабочее решение, я уже это сделал! Проблема, которая заставляет меня сомневаться в этом, заключалась в том, что в документации они сказали, что следует избегать статического диспетчера активов или статического метода... Не совсем уверен в разнице между статическим классом и методом статического экземпляра, поскольку они оба статичны. - person ; 14.12.2016