В моей программе пользователю необходимо ввести типы игроков, которые будут иметься в игре. Игроки "human"
, "good"
(для хорошего AI), "bad"
(для плохой AI) и "random"
(для случайного AI). Каждый из этих игроков имеет свой собственный класс, который расширяет один абстрактный класс под названием PlayerType
.Использовать командную строку для создания новых объектов
Моя борьба отображения String
на объект, так что я могу А) создать новый объект, используя строку в качестве своего рода ключом и B) получить связанную String
от объекта подкласса
В конечном счете, я просто хочу, чтобы неявный String
отображался только один раз в коде, поэтому я могу изменить его позже, если потребуется, без рефакторинга.
Я пробовал использовать только простой HashMap, но это кажется неуклюжим с поиском ключей через значения. Кроме того, я предполагаю, что мне придется использовать метод getInstance()
Class
, который немного менее неуклюжим, и это нормально, если это единственный способ.
Зарегистрируйте свой Classe с фабрикой, использующей строковый ключ классов в качестве ключа, а сам класс - как значение. –
Это постоянный ввод или только когда он запущен? – ChiefTwoPencils
, вероятно, какой-то оператор switch, основанный на доступных именах, а затем просто возвращает новый экземпляр любых совпадений. – CasualT