0

これは説明が難しいものです。

ボックスのコレクションがあり、それぞれに独自の内容があります。ボックスは複数の棚に表示される可能性があり、内容が変更された場合は、それらの変更をグローバルに反映したいと考えています。

私はボックスのグローバルなコレクションを持っており、そこからシェルフごとにボックス コレクションも作成しています。

私の問題は、ボックスが各棚のどこに配置されているかを知ることです. X の位置だけを考えてみましょう。

あるケースでは、私の箱が棚の真ん中に置かれ、X 位置が 44cm になることがあります。別のケースでは、同じボックスがシェルフの先頭にあり、その X 位置が 0 である場合があります。

Shelf(id).Box(id).PosX としてアクセスする必要があります

しかし、それは常に1つの答えを与え、答えは親シェルフに応じて変わるはずです.

この問題には多くの答えがあることは知っていますが、誰かが私が計画していたことのいくつかよりもエレガントな方法を持っていることを願っています.

4

1 に答える 1

2

箱はそれがどこにあるかを知る必要がありますか? おそらくそうではありません-棚にその内容について尋ねることができるはずです。これは、箱がどこにあるかを棚に尋ねることを意味します。

myShelf.GetBoxPosition(boxId).PosX

したがって、ボックスには位置情報がありません。これは、複数の場所にある可能性があるため意味があります。シェルフは中身がどこにあるかを知っており、質問に答えることができます。

ここでの前提は、ボックスが同じ棚に複数回表示されないことです。それ以外の場合は、単一のボックス位置ではなく、ボックス位置のコレクションを返す必要があります。

于 2013-03-12T16:59:41.130 に答える