这很难解释。
我有一个盒子集合,每个盒子都有自己的内容。该框可以出现在多个架子上,如果内容发生变化,我想全局反映这些变化。
所以我有一个全球性的盒子集合,从中我也为每个架子创建了一个盒子集合。
我的问题是知道盒子放在每个架子上的位置。让我们担心X的位置。
在一个案例中,我的盒子可能坐在架子的中间,而X的位置是44厘米。 在另一种情况下,同一个盒子可能位于架子的开头,而它的X位置是0。
我需要以Shelf(id).Box(id).PosX
的形式访问它但这总是会给出一个答案,答案应该根据父母的架子而改变。
我知道这个问题有很多答案,但我希望有人比我一直在计划的事情更优雅。
答案 0 :(得分:2)
盒子应该知道它在哪里吗?可能不是 - 你应该可以向货架询问其内容,这意味着询问货架所在的货架。
myShelf.GetBoxPosition(boxId).PosX
因此该框没有任何位置信息,这是有意义的,因为它可以在多个位置。货架知道其内容的位置,并可以回答您的问题。
这里的假设是盒子不会在同一个架子上多次出现 - 否则它必须返回一个盒子位置的集合,而不是一个盒子位置。