Скажем, в качестве примера, у меня есть класс Player, который имеет расу через класс Race. Эти расы фиксированы по количеству и загружаются в массив, к которому можно обращаться статически.
Мой вопрос заключается в том, должен ли класс Player иметь индексный идентификационный номер, который затем должен был бы вызвать статическую функцию getRaceByID (int), чтобы получить класс Race для выполнения некоторых внутренних вычислений. Теперь я мог бы обойтись без этого, если бы у меня была ссылка на расу непосредственно в классе Player, но тогда сохранение игрока в файл становится проблематичным. Я только хочу, чтобы ссылка на Гонку была сохранена вместе с данными Игрока. Как ID.
Я хочу не хранить копию данных гонки и вместо этого просто ссылаться на нее. Есть ли что-то, что я должен делать по-другому? Есть ли шаблоны для решения чего-то подобного? Базы данных имеют дело с идентификаторами, но, похоже, не очень хорошо работают при разработке ОО. Любая помощь приветствуется, спасибо.
class Player
{
Race race;
}
В этом случае мне нужно сравнить эту гонку с гонками в моем статическом массиве, чтобы я мог правильно выписать идентификатор индекса. Другим решением является сохранение идентификатора в самом классе Race, чтобы я мог ссылаться на него непосредственно из класса Race следующим образом:
race.getID();
Или было бы лучше пойти с чем-то вроде этого, чтобы усилить эти отношения:
class Player
{
int raceID;
}</p>
<p>Race r = MyFile.getRaceByID(raceID);</p>
<p>// can now use race