【问题标题】:Is there a specific name for the node that coresponds to a subtree?是否有对应于子树的节点的特定名称?
【发布时间】:2008-09-17 19:38:37
【问题描述】:

我正在设计一个网站导航层次结构。它是一棵节点树。节点代表网页。

树上的一些节点是特殊的。我需要他们的名字。

有多个这样的节点。每个都是具有不同徽标、样式表或布局的页面的子树的“根”。想想不同的部门。

site map with color-coded sub-trees http://img518.imageshack.us/img518/153/subtreesfe1.gif

我应该如何命名这种类型的节点?

【问题讨论】:

    标签: data-structures naming-conventions tree class-design naming


    【解决方案1】:

    Root(有子节点但没有父节点)、Node(有子节点和父节点的节点)和 Leaf(没有子节点和父节点的节点)怎么样?

    然后,如果需要,您可以通过名称和在树结构中的位置(例如 DepartmentRoot、DepartmentNode、DepartmentLeaf)进行区分..

    更新来自 OP 的后续评论

    看着你的问题,你说“一些”是特殊的,在你的图表中,你有不同的节点在不同的层次上看起来不同。节点的设计可能不同,您可以通过多种方式构建树结构。例如,一个可以有子节点的抽象类,如果没有子节点,它是叶子节点,如果没有父节点,它是根节点,但这可以在它的生命周期中改变。或者,一个固定的类结构,其中叶子是一种特定的类类型,不能以任何方式将子级添加到其中。

    如果您的设计不需要您根据节点的位置(相对于根)以不同方式区分节点,则表明您有一个用于所有节点的抽象类。

    在这种情况下,它提出了一个问题,有什么不同?

    如果它只是与其他地方的标准节点相同,但有一点样式,那么 StyledNode 怎么样?您甚至需要将它分开吗(没有样式 == 没什么大不了的,它不会渲染)。

    由于我不了解树的架构机制,因此在命名时可能需要考虑几个因素。

    【讨论】:

    • 我认为不需要区分根、节点和叶子。
    【解决方案2】:

    您要查找的词是“Section”。它是整体的一部分,里面有同样的东西。

    所以,你有节点,它有子节点和父节点,你有 SectionNodes,它们是这些特殊子树的根。

    【讨论】:

    • IMO 我认为“部分”有点误导..我认为它与实际的“树状”结构关系不大..
    • 名字反映树形结构重要吗?
    【解决方案3】:

    PageTemplate 如何体现其子级拥有自己的布局、CSS 等这一事实?

    【讨论】:

      【解决方案4】:

      AreaNode

      【讨论】:

        【解决方案5】:

        所以,听起来您正在收集类别。节点是该类别的入口点。那么“TopCategoryNode”、“CategoryEntry”怎么样呢?它们下面的东西。或者,如果你想划分更多,比如“CategoryCSS”、“CategoryLayout”等?

        这是一种泛型,但您明确表示存在“类别”,并且这些类别确实包含多个子节点或子主题。

        【讨论】:

          【解决方案6】:

          分公司?

          保留树的类比,并在这种情况下暗示部门等

          考虑类层次结构,Root可能是Branch的特例,是Node的特例,Leaf的特例。分支/节点的区别是您可以针对您的特殊情况做出的区别。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-09-19
            • 2014-07-06
            • 2014-08-29
            • 2021-01-31
            • 1970-01-01
            • 2023-03-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多