AS3好奇的结构问题

时间:2011-05-30 23:29:11

标签: actionscript-3 oop structure

我(我认为)非常擅长构建我的应用程序类和包,但最近我一直在努力,我可以使用一些建议:

只包含静态常量的类,如下所示:

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 个答案:

答案 0 :(得分:1)

我认为您现有的方法是正确的,因为它是最合乎逻辑的。通常,您看不到(在通用体系结构中)只包含静态/常量变量的类。您通常会看到它们捆绑在一个类中,其中存在大多数利用这些静态的功能。例如,AS3中的任何Events类。你会看到与实际事件类(MouseEvent)捆绑在一起的静态const MouseEvent.MOUSE_DOWN等。我认为将它们分成一个纯粹用于存储静态的包,虽然不一定是错的,但它的逻辑性较差。无论如何,如果你要遵循建立的东西的例子,我会以AS3语言本身为例,在那个例子中我们可以看到flash核心团队似乎将类汇编成具有最高级别关联的包。我想也许你对此产生的怀疑是因为你有一个纯粹由常量组成的类,没有任何功能或继承可以将类明确地耦合或链接到其他任何东西。

答案 1 :(得分:0)

我想如果我有很多与特定任务相关的常量,但可能需要多个类(比如游戏中的重力值),我会把它们放在一个定义类中像那样。我不喜欢仅针对常量值(太多耦合)引用彼此的函数类。