0

这个问题实际上出现了不少。以这个实例模型视图为例。我有 2 个对象。模拟对象和渲染对象。

ObjectRSim 类(Object,指定为 Render Sim)类似于:

class ObjectRSsim {
   var simObject:ObjectSim;
}

ObjectRSim,使用 ObjectSim 的属性/失效。

有继承 ObjectRSim 和 ObjectSim 的对象:

PosObjectRSim 和 PosObjectSim(位置对象..)

class PosObjectRSim extends ObjectRSim {
   var posSimObject:PosObjectSim;
}

或者...

class ObjectRSim {
   var simObject:Dynamic; //Dynamic is untyped Type from haxe, the compiler does not check calls to a Dynamic object. 
}

我应该在 ObjectRSim 层次结构类中引用 ObjectSim 继承层次结构中的每种类型,还是应该只使用 simObject:Dynamic?

4

2 回答 2

1

在这种情况下使用 Dynamic 是完全错误的。它通常很慢(对于我猜除了 javascript 之外的每个 haxe 目标),没有内联,并且通常仅用于与底层平台交互或使用序列化(YAML、JSON 等)。

谈到解决问题...

如果没有计划数千个这样的对象,我可能只是低级类对象的另一个字段。从 OOP 的角度来看,这不是最清晰的方法,但它经常为我带来更简单和更清晰的代码。

铸造是另一种选择(我个人不喜欢)。

参数化可能是处理这个问题的最好方法,但我不确定我们是否已经在 haxe 中进行了类型限制参数化。

于 2012-07-23T12:22:45.277 回答
0

参数化依赖类和依赖成员。

于 2012-06-05T06:41:34.827 回答