AS3 Любопытный вопрос о структуре - PullRequest
0 голосов
/ 31 мая 2011

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

Классы, которые содержат только статические константы,как это:

package //?
{
    public class Elements
    {
        public static const FIRE:String = "fire";
        public static const WATER:String = "water";
    }
}

которые, очевидно, используются в таких ситуациях:

var myElement:String = Elements.FIRE;

Я всегда помещал эти классы в пакеты, которые содержат другие классы, которые наиболее их используют,Например, этот класс может быть в game.mobiles, потому что этот пакет содержит классы для мобильных устройств (игроков, врагов и т. Д.), Которые в наибольшей степени используют Elements;у них есть сопротивление и урон, которые могут быть элементарными.

Это кажется мне странным, потому что Elements на самом деле не имеет ничего общего с мобильными телефонами (поскольку это не мобильный телефон или технически даже не связан с мобильным телефоном).).

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

На что мне следует обратить внимание, чтобы иметь как можно более чистую и понятную структуру, когда речь заходит об этих маленьких классах?

Ответы [ 2 ]

1 голос
/ 31 мая 2011

Я думаю, что ваш существующий метод правильный, так как он наиболее логичен. Обычно вы не видите (в обычных архитектурах) классы, которые содержат ТОЛЬКО статические / постоянные переменные. Как правило, вы видите их в комплекте с классом, в котором существует функциональность, которая в наибольшей степени использует эти статики. Например, любой из классов Events в AS3. Вы увидите статическое const MouseEvent.MOUSE_DOWN и т. Д., Связанное с фактическим классом событий (MouseEvent). Я думаю, что разделение их на пакет, который существует исключительно для хранения статики, было бы менее логичным, хотя это не обязательно было бы неправильно. В любом случае, если бы вы следовали примеру чего-то установленного, я бы посмотрел на сам язык AS3 в качестве примера, и в этом примере мы видим, что команда флэш-ядра, похоже, собирает классы в пакеты с наивысшим уровнем ассоциации. Я думаю, что, возможно, ваши сомнения в этом возникают, потому что у вас есть класс, состоящий исключительно из констант, а не функциональности или наследования, которые явно связывают или связывают класс (ы) с чем-либо еще.

0 голосов
/ 31 мая 2011

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

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