Есть ли конкретное имя для узла, который coresponds к поддереву? - PullRequest
1 голос
/ 17 сентября 2008

Я разрабатываю иерархию навигации по сайту. Это дерево узлов. Узлы представляют веб-страницы.

Некоторые узлы на дереве являются специальными. Мне нужно имя для них.

Есть несколько таких узлов. Каждый из них является «корнем» поддерева со страницами, на которых есть отдельный логотип, таблица стилей или макет. Подумайте о разных отделах.

карта сайта с цветными деревьями http://img518.imageshack.us/img518/153/subtreesfe1.gif

Как мне назвать этот тип узла?

Ответы [ 6 ]

6 голосов
/ 17 сентября 2008

Как насчет Root (узел с дочерними элементами, но без родителя), Node (узел с дочерними и родительскими элементами) и Leaf (узел без дочерних и родительских элементов)?

При необходимости вы можете различить по имени и положению в древовидной структуре (например, DepartmentRoot, DepartmentNode, DepartmentLeaf).

Обновление после комментария от OP

Глядя на свой вопрос, вы сказали, что «некоторые» являются особыми, и на вашей диаграмме разные узлы выглядят по-разному на разных уровнях. Узлы могут отличаться по своему дизайну, вы можете построить древовидную структуру многими способами. Например, у одного абстрактного класса, который может , есть дочерние узлы, если нет детей, это лист, если нет родителя, его корень, но это может измениться за время его жизни. Или фиксированная структура классов, в которой листы являются определенным типом класса, который не может иметь дочерние элементы, добавленные к ним каким-либо образом.

Если ваш дизайн не требует, чтобы вы различали узлы по-разному в зависимости от их положения (относительно корня), он предполагает, что у вас есть абстрактный класс, используемый для всех них.

В каком случае возникает вопрос: Чем он отличается?

Если это просто то же самое, что и стандартный узел везде, но с небольшим стилевым оформлением, как на счет StyledNode ? Вам даже нужно, чтобы он был отдельным (без стиля == ничего страшного, он не рендерится).

Поскольку я не знаю, как устроено дерево, возможно, при именовании может быть несколько факторов.

2 голосов
/ 17 сентября 2008

Слово, которое вы ищете, это «Раздел». Это часть целого и внутри одинаковые вещи.

Итак, у вас есть узлы, у которых есть дочерние элементы и родитель, и у вас есть узлы разделов, которые являются корнями этих специальных поддеревьев.

1 голос
/ 17 сентября 2008

Филиал?

Сохраняет древовидную аналогию, а также намеки в этом случае в отделах и т. Д.

Думая о классовых наследниках, Root, вероятно, является частным случаем Branch, который является частным случаем Node, частным случаем Leaf. Различие между ветвями и узлами - это то, что вы можете сделать для своей особой ситуации.

1 голос
/ 17 сентября 2008

Похоже, вы собираете категории. Узлы являются точками входа этой категории. Как насчет «TopCategoryNode», «CategoryEntry», то для сома, то, что находится под ними. Или, если вы хотите разделить больше, что-то вроде "CategoryCSS", "CategoryLayout" и т. Д.

Это своего рода общее, но вы ясно даете понять, что есть "категории", и они состоят из нескольких подузлов или подтем.

1 голос
/ 17 сентября 2008

AreaNode

1 голос
/ 17 сентября 2008

Как насчет PageTemplate , чтобы воплотить тот факт, что его дочерние элементы имеют собственный макет, CSS и т. Д.?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...