Если класс имеет 50 закрытых членов одного типа. Обернуть их в вектор / массив / словарь или оставить? - PullRequest
0 голосов
/ 18 января 2012

У меня есть класс, который имеет дело со многими визуальными эффектами, которые по сути являются видеоклипами.Итак, у меня в классе около 50 частных видеоклипов.Было бы хорошей идеей поместить их в словарь и получить их по имени (в качестве ключа), поместить их в массив или просто оставить их такими, какие они есть?сейчас урок с таким большим количеством закрытых членов, визуально выглядит как беспорядок.

1 Ответ

2 голосов
/ 19 января 2012

Если код обрабатывает их все одинаково, тогда обязательно поместите их в массив. Например, если у вас есть метод stop:

public function stop() : void {
    for each( var clip : MovieClip in clips ) {
        clip.stop();
    }
}

Если вы делаете много подобных вещей, тогда массив имеет смысл. Если вы относитесь к ним индивидуально, как:

public function waveHand() : void {
    handWavingClip.play();
}

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...