![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
1234ru |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 26.8.2007 Репутация: нет Всего: -1 |
Допустим, есть
Как из этого цивилизованно делается дочерний класс Child, который наследует свойства Parent так, чтобы можно было эти свойства в т.ч. дополнять. Т.е. внутри Child.method() вызывать Parent.method() и еще выполнять какой-то дополнительный код, а не переопределять Child.method() с нуля? |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
40 набла
не оно? Практика показывает, что наследование с возможностью вызова методов предков, как правило, не пригождается в обычной жизни javascript-программиста. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 13 Всего: 28 |
||||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
CruorVult, Мне приходилось использовать наследование с вызовом и переопределением методов предков только в некоторых тестовых приложениях с играми. Да и там уровень наследования был не больше 2-х, тоесть можно было обойтись и так, каким-нибудь делегированием.
imho, JS - по моим теперешним представлениям, не самостоятельный язык, а некая прослойка между юзером и сервером, вот на сервере уже полезно навернуть объектную модель просто потому что реализация плагинов через наследование от базового класса достаточно удобна и практична... В каком практическом случае действительно нужно использовать такое наследование? Есть хотя бы "приближенный к реальности" пример? Еще лучше реальный... То есть не абстратный пример из учебника по ооп, а какой-то, в котором наследование было бы действительно лучшим(или хотя бы хорошим) решением, чем какое-то другое? P.S. Единственный случай такого применения, который я смог вообразить - создание плагинов для некоей JS библиотеки, занимающейся некими странными вещами... (что интересно такого можно делать на компе юзеа, чтобы потребовалось еще и писать плангины? ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
1234ru |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 26.8.2007 Репутация: нет Всего: -1 |
ksnk, за ссылку спасибо. Читаю...
Насчет того, что где может пригодиться наследование, у меня как раз есть пример из жизни (собственно, он меня и подтолкнул к тому, чтобы завести эту тему). На сайте есть интерфейс для публикации материалов. Материалов существует несколько видов, которые сильно похожи между собой, но все же немножко отличаются. Одна из задач здесь - проверка формы при размещении. В этой проверке у всех материалов есть общие части - проверка на длину заголовка, на недопустимые символы, ну, если говорить в общем, проверки имеют дело со значениями ряда полей. Часть полей есть у всех материалов (соответственно, проверки у них общие для всех случаев), при этом настройки, связанные с этими проверками, хочется мочь менять для всех сразу. Но как правило у каждого вида публикаций есть и отличия от остальных. И эти отличия тоже нужно учитывать в проверках. Пока видится один уровень наследования, но на это не хотелось бы полагаться. Проверки эти довольно сложные, требуют довольно много действий. Пихать их все в функцию неудобно (много функций тоже выглядят конструкцией негибкой и громоздкой, потому что много параметров; короче, некрасивой). Поэтому решил реализовывать в классе. |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 13 Всего: 28 |
ksnk, к примеру MVC на клиенте, есть класс Controller, методы которого наследуются другими классами-контроллерами. Но вообще ты прав, более чем 2-йная наследовательность редко применяется.
Это сообщение отредактировал(а) CruorVult - 16.11.2010, 11:56 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
CruorVult, MVC на javascript, imho - вообще мертворожденная технология. Она достаточно удобно подходит для серверных приложений, с web-серверной спецификой - множество быстроисполняющихся запросов, выдающих отформатированные данные, однако на javscript ее натягивать - мне, например, непонятно как. Все контроллеры или view'хи уже так или иначе реализованы в Dom и JS и городить специальные обертки для них только заради следования технологии MVC считаю жлобством
![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 13 Всего: 28 |
Я сейчас делаю проект следующей структуры:
Серверную часть расказывать не буду, скажу только что данные клиент получает только в json. Есть объект Controller, через который проходят все взаимодействия клиента и сервера. Любые действия на клиенте передается и обрабатывается контроллерм, который формирует нужный запрос и отправляет на сервер(по средствами ajax-запросов), либо выполняет другие действия над уже имеющимися данными. Когда получили ответ от сервера Controller анализирует пришедшие данные и по ним вызываются нужные рисовальщики из объекта View. Задача была - реализовать полностью ajax-овое приложение вот и пришла в голову такая реализация. |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |