我有一个对象可以拥有相同对象类型的父对象和子对象。是否有实现这种模式的标准化方法?
类似的东西:
public class Nested
{
public string Name {get; set;}
public List<Nested> Parents {get {TODO}}
public List<Nested> Children {get {TODO}}
}
答案 0 :(得分:4)
查看复合模式here
答案 1 :(得分:1)
从内存的角度来看,似乎你的类的任何实例都需要递归地过滤所有内容以找出关系是什么。这很麻烦。
我建议给你的班级这样一个属性(或者更复杂的东西,取决于你想要完成的东西):
public Nested parent;
这将使其成为链接列表。您可以在类之外单独创建一个方法,该方法可以根据一组有限的参数设置查找父项(例如FindParentsOfNestedToCertainGeneration(int numOfGenerations,Nested child)) - 这将只是转到子项并在“父母“财产”。