1

我有一个单元列表,每个列表都有一个站点列表。

有时我需要获取一个站的父单元。

我将如何实现这个层次结构?

  • 我应该将父单元格保留为站对象中的属性吗?
  • 我应该只在站对象中保留父单元 ID 吗?
  • 做点不一样的?
4

3 回答 3

5

如果我是你,我会创建两个类:

public class Cell {
 ...
  public List<Station> Stations {
    get {...}
  }

  protected Station AddStation() {
     Station result = new Station(this);
     Stations.Add(result);
     return result;
  }
}

public class Station {
  public Station(Cell cell) {
    this.cell = cell;
  }
  Cell cell;
  public Cell Cell {get {return cell;}}
}

有了这个结构,您总是可以从 Station 对象访问 Cell。

于 2012-05-31T12:53:34.183 回答
2

如果您需要从 导航回Station,则Cell需要该Station对象具有设置为其父单元格的ParentCell(或)属性。Cell

于 2012-05-31T12:52:43.807 回答
1

如果您想要不同的答案,有一种方法可以在没有实际组合的情况下实现层次结构。创建一个站对象,其中每个方法都接受 Cell 作为参数,例如:

public void DoStuff(whatever x, Cell parent)
{

}

每个站将在其父单元的上下文中进行评估,但您可以使用相同的Station对象来表示层次结构中的不同站。

提供该解决方案是为了多样化。在大多数情况下,要走的路是组合,如上所述。另外,我认为你应该使用 Cell 本身,而不是它的 Id。

于 2012-05-31T12:59:01.343 回答