对象模式的嵌套层次结构

本文关键字:层次结构 嵌套 模式 对象 | 更新日期: 2023-09-27 17:59:00

我有一个对象,它可以具有相同对象类型的父对象和子对象。有没有一种标准化的方式来实现这种模式?

类似于:

public class Nested
{
   public string Name {get; set;}
   public List<Nested> Parents {get {TODO}}
   public List<Nested> Children {get {TODO}}
}

对象模式的嵌套层次结构

看看这里的复合模式

从内存的角度来看,类的任何实例似乎都需要递归地过滤所有内容,以找出关系。这太麻烦了。

我建议只给你的类一个这样的属性(或者更复杂的东西,取决于你想要实现的目标):

public Nested parent;

这将使它成为一个链接列表。您可以在类之外单独创建一个方法,该方法可以根据一组有限的参数(例如FindParentsOfNestedToCertainGeneration(int numOfGenerations,Nested-child)——这将只转到child并在"parent"属性中的父级链中向上)来查找父级。