Страницы

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

воскресенье, 1 декабря 2019 г.

Каковы достоинства и недостатки наследования от прототипа в сравнении с наследованием от класса?

#ооп #наследование


Перерыл уже кучу ресурсов, но вот о достоинствах и недостатках ничего не нашел.
    


Ответы

Ответ 1



В теории прототипы дают больше гибкости. С их помощью можно вытворять такое, что строгому ООПу и не снилось. Поэтому... В теории Преимущества: Умопомрачительная гибкость: возможность менять прототипы во время выполнения программы, генерировать динамические иерархии прототипов и совершать прочие забавные вещи. Вас не смогут уволить, потому что код сможете поддерживать только вы. Недостатки: Ваш код никто не будет понимать. Однако если вы примените эту теорию на практике, то вас засмеют за ненормальное программирование, а то вовсе попросят на выход. Практически всегда вы будете использовать только те возможности прототипов, которые аккуратно ложатся в ООП. Более того, существующие движки джаваскрипта предполагают, что вы будете использовать строгие "классы", и при уходе в динамику сильно проседают по производительности. Так что переходим к суровой правде жизни... На практике Преимущества: Отсутствуют. Недостатки: Странный синтаксис. Зоопарк библиотек, эмулирующих обычные классы. И будем честны: единственный мейнстримовый язык с прототипами — это JavaScript. Это такой язык, который дизайнили 10 дней и накодили за пару месяцев. В новой версии стандарта вводят синтаксический сахар для классов, поэтому старый синтаксис с прототипами уйдёт в прошлое. Посему... В ближайшем будущем Преимущества: Если вы знаете, что такое прототипы, то вы будете на 20% круче тех, кто не знает. Вы сможете гордиться этим абсолютно бесполезным знанием. Недостатки: Отсутствуют.

Ответ 2



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

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

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