Используйте перечисление или абстрактный базовый класс в игре в Objective-C - PullRequest
0 голосов
/ 15 марта 2011

Context : В игре, когда каждый уровень завершен, рейтинг сохраняется в зависимости от производительности игрока: Плохо, хорошо, отлично . Рейтинги позже используются для оценки игрового процесса в целом.

Вопрос : Если объект Rating содержит выбор рейтинга в виде enum {RatingPoor, RatingGood, RatingExcellent} или мне следует создать абстрактный базовый класс Rating с подклассами RatingPoor, RatingGood, RatingExcellent.

Другие детали
Рейтинги не имеют сложного поведения, они просто генерируются из статистики игры с очень низкой частотой, как каждую минуту. Они присваиваются коллекции и усредняются в конце игры, чтобы получить ранг (например, кадет, пилот, капитан, адмирал) . В конце уровня рейтинг отображается в виде значка (думаю, звезды, как в Angry Birds) . Они также сохраняются, когда игрок делает паузу или приостанавливает игру.

Я также был бы признателен, если бы знал , как определить относительно перечисления и подкласса, учитывая этот контекст.

Ответы [ 2 ]

2 голосов
/ 15 марта 2011

Эта ситуация достаточно проста, поэтому вы должны просто использовать enum. Я обычно использую enum, когда что-то может быть представлено целым числом (режим, настройка или, в вашем случае, рейтинг). Подкласс необходим только в том случае, если ваши оценки будут включать дополнительные атрибуты или отношения.

1 голос
/ 15 марта 2011

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

Я не эксперт в разработке программного обеспечения, но я, как правило, ошибаюсь в использовании простейших структур данных, которые помогут выполнить работу - в общем, если для решения проблемы не требуется, чтобы у вас были методы, перемещающиеся с данными, класс будет более тяжелым, чем необходимо.

...