Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Можно ли считать HTML+CSS ООП?

#ооп


Собственно вопрос в теме, добавлю скажем


,

, и т. д. - объекты #id, .class, свойства CSS - надстройки :hover, :active, :focus - события (Не говорю про js) Ну и вообще можно ли считать программированием или это разметка гипертекста, если так то как же конструкции типа: CSS .block { display: none; } .target:hover ~ .block { display: block; {


Ответы

Ответ 1



Извините, но это очень странное допущение. Пройдем по порядку. Не буду останавливаться на том, что ни HTML ни CSS не являются языками программирования. Ключевой сущностью в ООП является класс, представляющий собой модель некой сущности. Класс обычно помимо состояния (то есть данных, описывающих саму сущность) включает в себя и модель поведения этой сущности (это достигается наличием у класса методов, или функций класса). Так вот в случае, о котором вы говорите, модель поведения отсутствует. Далее. Как известно, основными составляющими ООП являются наследование, полиморфизм и инкапсуляция. Я с трудом себе представляю, какие механизмы в случае с HTML+CSS можно подогнать под эти три определения.Если наследование в рамках CSS еще может иметь какой-то смысл, то что понимать под полиморфизмом и инкапсуляцией? Более того, то, что вы указали в качестве якобы относящегося к ООП, к нему имеют весьма слабое отношение (за исключением такого понятия как "объект", который вы, очевидно, путаете с классом). События конкретно к ООП отношения не имеют. Свойства напрямую с ООП тоже не связаны (более того, есть ощущение, что вы путаете свойства и поля), а что более важно, не являются для самой парадигмы ООП сколько-нибудь определяющими. А вот что такое "надстройки" в контексте ООП, вообще непонятно. C другой стороны, с помощью некоторых ухищрений можно добиться некоего подобия, но это будет больше похоже на попытку превратить собаку в человека, нежели на собственно ООП (необходимость которого в HTML+CSS очень сомнительна)

Ответ 2



Если сильно захотеть, то html можно притянуть к ООП. Объекты есть, полиморфизм и наследование есть (p и div могут вести себя похоже, имеют много одинаковых методов). Но третья буква в ООП - программирование. А HTML - это язык разметки. Не программирования. В html5 уже есть js на борту, а там с ООП все более-менее. Но зачем это все? если просто хочется вебмастеру добавить себе ООП в CV:) Тогда и водитель может себе это добавить. Ведь машины - это объекты. Наследование есть (различные модификации машин. Более того, в большинстве случаев предка даже явно указывают). Есть свойства у машин (кол-во колес, кол-во поршней). Полиморфизм? да пожалуйста. Если умеешь управлять одной машиной, то скорее всего сможешь управлять и целым семейством. Инкапсуляция? да, кто же крутит колеса монтировкой? только рулем, только круглым (некоторые цепляют квадратный руль, но это не мейнстрим). Но все это не дает водителю машины говорить, что он использует и знает ООП.

Комментариев нет:

Отправить комментарий