Можно ли называть DOM (Document Object Model) объектно-ориентированным?
Один из фундаментальных интерфейсов Node имеет атрибут nodeType; само по себе наличие этого аттрибута не противоречит принципам объектно-ориентированного программирования, но то, что практически любая программа, использующая DOM, вынуждена использовать nodeType, это что, тоже нормально?
Здравствуйте, igna, Вы писали:
I>Можно ли называть DOM (Document Object Model) объектно-ориентированным?
Я не думаю, что на этот вопрос можно дать какой-либо четкий ответ, учитывая отсутствие общепринятых критериев "объектно-ориентированности" чего-либо.
Здравствуйте, 0x7be, Вы писали:
0>Я не думаю, что на этот вопрос можно дать какой-либо четкий ответ, учитывая отсутствие общепринятых критериев "объектно-ориентированности" чего-либо.
Здравствуйте, igna, Вы писали:
I>Можно ли называть DOM (Document Object Model) объектно-ориентированным?
I>Один из фундаментальных интерфейсов Node имеет атрибут nodeType; само по себе наличие этого аттрибута не противоречит принципам объектно-ориентированного программирования, но то, что практически любая программа, использующая DOM, вынуждена использовать nodeType, это что, тоже нормально?
Насколько я понимаю, по подклассам Node PM-ить тоже можно.
Здравствуйте, igna, Вы писали:
I>Здравствуйте, 0x7be, Вы писали:
0>>Я не думаю, что на этот вопрос можно дать какой-либо четкий ответ, учитывая отсутствие общепринятых критериев "объектно-ориентированности" чего-либо.
I>Используй свой критерий.
А смысл? Зачем вообще париться на сабжевую тему, если каждый в него что хочет может вложить, а практического смысла в этом баззворде получается что ноль.
Здравствуйте, igna, Вы писали:
0>>Я не думаю, что на этот вопрос можно дать какой-либо четкий ответ, учитывая отсутствие общепринятых критериев "объектно-ориентированности" чего-либо. I>Используй свой критерий.
Тогда скорее да, чем нет
Здравствуйте, dimgel, Вы писали:
D>А смысл? Зачем вообще париться на сабжевую тему, если каждый в него что хочет может вложить, а практического смысла в этом баззворде получается что ноль.
Чтобы узнать, что другие понимают под этим. И говорить с людьми по возможности на одном языке.
I>Ну метод (код) для Element здесь не объединен с данными Element, то есть инкапсуляция отсутствует.
А в Визиторе разве не то же самое? Тем не менее он считается ООП паттерном.
Здравствуйте, igna, Вы писали:
I>Можно ли называть DOM (Document Object Model) объектно-ориентированным?
I>Один из фундаментальных интерфейсов Node имеет атрибут nodeType; само по себе наличие этого аттрибута не противоречит принципам объектно-ориентированного программирования, но то, что практически любая программа, использующая DOM, вынуждена использовать nodeType, это что, тоже нормально?
Скорее да, чем нет.
1. Identity у нас есть — две ноды с совпадающими значениями атрибутов и детей всё ещё вполне себе различимы
2. State есть — ноды оборудованы состоянием, и есть набор способов по изменению этого состояния
3. с Behavior некоторые сложности. Поведение DOM слабо инкапсулировано; из-за замкнутости модели мы можем легко вынести всё это поведение "наружу" и всё ещё иметь практически ту же модель.
Так что на мой вкус, DOM объектно-ориентировано процентов на 70-75.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.