【发布时间】:2011-06-16 11:19:14
【问题描述】:
您好,在此先感谢您, 我有一个从我的主类构建的自定义类。在自定义类中,它有另一个作为参数传入的自定义类。我想严格输入参数变量,但是当我这样做时,'类型不是编译类型常量等'。 我理解,这是因为用作参数的自定义类尚未构建。 当我使用变量类型 ( * ) 键入参数时,这一切都有效。 我怀疑这是一个设计缺陷,因为我使用了不正确的设计模式。它实际上是手把手的代码,从不完全熟悉 oop 概念和设计模式的其他人那里收到了一个大型项目。 我已经考虑在我的主类中为参数类使用虚拟构造函数,但传入的类也需要一个自定义类(本身带有参数构造函数)。我正在考虑使用 ... (rest) 以便自定义类的参数是可选的。 还有其他方法可以控制类的构建顺序吗?其余变量会起作用吗? 谢谢
(编辑) 在 main.as 中的构造函数或其他函数中
var parameter1:customclass2;
customclass1(parameter1);
在 customclass1 构造函数中:
公共函数customclass1(参数1:customclass2) { ....
当我在参数中使用数据类型 customclass 2 时,Flash 抱怨找不到编译类型。当我使用变量数据类型 * 或省略数据类型(然后默认为 * 无论如何)时,它不会抱怨。我认为这是因为 customclass2 尚未构建,因此编译器无法使用。 或者,我没有将 customclass2 的路径添加到编译器,但我相当肯定我已经排除了这一点。 有超过 10,000 行代码,整个过程运行良好。我重写只是为了优化编译器 - 严格的数据类型,错误处理等。如果我发现继承等作为选项可用的情况,那么我会使用它,但它已经分为类(至少在主要部分)。这只是为了我自己的安心,并保持严格的数据类型策略,以便编译器优化更有效地工作。 谢谢
【问题讨论】:
-
rest 变量不起作用-rest 变量后面的参数必须是数组数据类型。
-
我不确定我是否理解你的问题,你能发布一些代码吗?
-
如果您发现遗留代码不遵循 oop 范式存在问题,您应该考虑重写。
标签: actionscript-3 parameters constructor