C# 对象层次结构

本文关键字:层次结构 对象 | 更新日期: 2023-09-27 18:35:48

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

有时我需要获取电台的父单元格。

我将如何实现此层次结构?

  • 我是否应该将父单元格保留为工作站对象中的属性?
  • 我应该只在工作站对象中保留父单元格 ID 吗?
  • 做一些不同的事情?

C# 对象层次结构

如果我

是你,我会创建两个类:

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;}}
}

具有此结构,您始终可以从工作站对象访问 Cell。

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

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

public void DoStuff(whatever x, Cell parent)
{
}

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

提供此解决方案是为了多样化。在大多数情况下,要走的路是构图,如上所述。另外,我认为您应该使用单元格本身,而不是它的 ID。