引用超类(类型语言)的首选方法

时间:2012-06-05 04:24:56

标签: java c++ haxe

实际上出现了这个问题。采用此实例模型视图。我有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?

2 个答案:

答案 0 :(得分:1)

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

谈论解决问题......

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

施法是另一种选择(我个人不喜欢)。

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

答案 1 :(得分:0)

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