C# 对象层次结构
本文关键字:层次结构 对象 | 更新日期: 2023-09-27 18:35:48
我有一个单元格列表,每个列表都有一个站点列表。
有时我需要获取电台的父单元格。
我将如何实现此层次结构?
- 我是否应该将父单元格保留为工作站对象中的属性?
- 我应该只在工作站对象中保留父单元格 ID 吗?
- 做一些不同的事情?
如果我
是你,我会创建两个类:
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。