实际上出现了这个问题。采用此实例模型视图。我有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?
答案 0 :(得分:1)
在这种情况下使用Dynamic是完全错误的。它经常很慢(对于每个haxe目标,除了javascript我猜),没有内联,通常只用于与底层平台交互或使用序列化(YAML,JSON等)。
谈论解决问题......
如果没有计划数千个这样的对象,我可能只是另一个低级类对象的字段。从OOP的角度来看,它不是最清晰的方式,但它经常为我提供更简单,更清晰的代码。
施法是另一种选择(我个人不喜欢)。
参数化可能是处理这种情况的最佳方法,但我不确定我们是否已经在haxe中进行了类型限制参数化。
答案 1 :(得分:0)
参数化依赖类和依赖项成员。