0

この問題は実際にはかなり発生します。このインスタンス モデル ビューを見てください。私は2つのオブジェクトを持っています。シミュレーション オブジェクトとレンダリング オブジェクト。

クラス ObjectRSim (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など)の操作にのみ使用されます。

問題解決の話…

このオブジェクトが何千も計画されていない場合は、おそらく下位クラスのオブジェクト用にもう 1 つのフィールドを作成します。これは OOP の観点からは最も明確な方法ではありませんが、多くの場合、コードがより単純で明確になります。

キャスティングは別のオプションです(個人的には好きではありません)。

パラメータ化はおそらくそれを処理するための最良の方法ですが、haxe で型制限されたパラメータ化がすでに行われているかどうかはわかりません。

于 2012-07-23T12:22:45.277 に答える
0

依存クラスと依存関係メンバーをパラメーター化します。

于 2012-06-05T06:41:34.827 に答える