DOM API
От: adontz Грузия http://adontz.wordpress.com/
Дата: 08.09.10 17:13
Оценка:
Вышел у меня тут спор — должна ли быть коллекция детей в HTML/XML DOM узле непосредственно частью узла или полем. Говоря проще, третий дочерний узел это node[3] или element.node[3]?


Аргументы за вариант node[3]

1) Так логичнее, так как иерархия DOM в точности соответствует Visual Tree.

2) Для отображения дерева требуется в два раза меньше объектов.

3) Так привычнее, так как в браузерах именно такая реализация.
http://www.w3.org/TR/DOM-Level-3-Core/core.html
Аттрибуты firstChild, lastChild, previousSibling, nextSibling, parentNode, методы appendChild, removeChild, replaceChild принадлежат node. Коллекция childNodes служит только для перечисления, но не модификации.


Аргументы за вариант node.children[3]

1) Не нарушает Single Responsibility Principle, не нарушает Interface Segregation Principle.

2) Позволяет использовать существующие коллекции (не надо писать с нуля свои, либо агрегировать существующие).

3) Так привычнее, так как в WinForms и WPF именно такая реализация.


Который варинт мой, а который — нет, не скажу для объективности Убедить друг друга не удалось, каждая сторона считает аргументы другой стороны не убедительными.

Просьба, помочь аргументами. Просьба исходить не из абстрактной крутости решений, а из практической выгоды в контексте XML/HTML DOM.
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.