1

これは、継承を持つ 1 対多 (または 1 対 1) を格納する単純な使用例です。Ext JS は JSON リーダーでこれをどのように処理しますか?

次のコードは、ユースケースを説明するための疑似モデルとデータをいくつか提供しています。

擬似コードの例:

Models:

Car {
  model,
  year,
  color
}

Truck extends Car {
  bedLength,
  duality
}

Van extends Car {
  leftSlideDoor,
  rightSlideDoor,
  tailGate
}

CarOwner {
  name,
  cars <Car>
}

Data:

carOwners:

[
{
  name: "Sencha",
  cars: [
   {
    color: "Brown",
    model: "Mater"
    type: "truck",
    duality: "false",
    bedLength: "10"
    },
    {
    color: "red",
    model: "sienna",
    type: "van",
    tailGate: "true",
    leftSlideDoor: "true",
    rightSlideDoor: "true"
    }
  ]
}
]

データがロードされると、「正しい」タイプの車がインスタンス化されてロードされます。Ext JS でこれを行うにはどうすればよいでしょうか?

4

1 に答える 1

0

OOの観点からは、あなたが説明したことは機能しません。車の所有者は「車」のコレクションを持っていますが、データで使用しようとしているタイプは車ではなく、車を拡張します。C#では、トラックやバンを格納できるようになりcarOwnerますList<ICar>が、ICarインターフェイスのプロパティのみを使用できます(これらは唯一の共有プロパティであるため)。

その例では、プロパティが可変の場合は、次のように自分の車をセットアップすることをお勧めします。

CarOwner {
  name,
  cars <Car>
  vans <Van>
  trucks <Trucks>
}

または、データを「車両」として記述し、そのオブジェクトをすべての可能なプロパティを含めるのに十分なジェネリックにすることができます。

ちなみに、Extでの「関連付け」の例を純粋に追い求めていて、車/バン/トラックのことを仮定した場合は、これに返信してください。

于 2013-01-11T08:03:05.287 に答える