对象不能同时具有父项和子项的数据关系的名称?
Name of a data relationship where an object cannot have both parent and children?
我们最近遇到了一个需要对这种关系建模的案例。一个节点可以有一个或没有父节点,也可以有多个子节点。一个节点不能同时有父节点和子节点。它基本上是一棵最大深度为 2 的树。
值得一提的是,所有对象也都来自同一个 class。这种关系有特定的名称吗?我对使用 "parent" 或 "children" 这样的名称犹豫不决,因为它们暗示了具有任意深度的树状关系。
如果你有这样的东西:
class Node
int parentOrChildFlag; // tells what kind of node it is
Node parent; // reference to parent
Node children[]; // collection of children
end class
以及以某种方式确保节点可以有父节点或子节点但不能同时具有父节点或子节点的逻辑,则此类节点的特定名称为 "bad design."
这听起来不应该是一样的 class。父节点 class 包含子节点,但没有父节点。子节点有父节点,但没有子节点。对我来说,这意味着这种结构:
class ParentNode
// some parent-specific stuff
ChildNode children[]; // collection of child nodes
end class
class ChildNode
// child-specific stuff
ParentNode parent;
end class
这只是一个标准的层级关系。
我们最近遇到了一个需要对这种关系建模的案例。一个节点可以有一个或没有父节点,也可以有多个子节点。一个节点不能同时有父节点和子节点。它基本上是一棵最大深度为 2 的树。
值得一提的是,所有对象也都来自同一个 class。这种关系有特定的名称吗?我对使用 "parent" 或 "children" 这样的名称犹豫不决,因为它们暗示了具有任意深度的树状关系。
如果你有这样的东西:
class Node
int parentOrChildFlag; // tells what kind of node it is
Node parent; // reference to parent
Node children[]; // collection of children
end class
以及以某种方式确保节点可以有父节点或子节点但不能同时具有父节点或子节点的逻辑,则此类节点的特定名称为 "bad design."
这听起来不应该是一样的 class。父节点 class 包含子节点,但没有父节点。子节点有父节点,但没有子节点。对我来说,这意味着这种结构:
class ParentNode
// some parent-specific stuff
ChildNode children[]; // collection of child nodes
end class
class ChildNode
// child-specific stuff
ParentNode parent;
end class
这只是一个标准的层级关系。