Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #91 (permalink)  
Старый 24.08.2009, 13:29
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
Рано мне еще автобиографию писать. )))
Какие все стеснитильные
Ответить с цитированием
  #92 (permalink)  
Старый 25.08.2009, 19:14
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Есть идея про мн наследование просто использовать расширение функций вообще без наследование а фабрикой объектов
__________________
Лови позитив
Ответить с цитированием
  #93 (permalink)  
Старый 25.08.2009, 19:56
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Я никогда не сталкивался с задачами, где рационально было бы применить только множественное наследование. "Подмиксовки" в JavaScript можно делать и по-другому (ведь у нас динамическое ООП), а в большинстве других задач и обычной схемы наследования достаточно.

Да и вообще я схему себе не очень представляю, если например (не касаясь JavaScript) один класс наследует два других класса, которые имеют одинаковые имена методов, то что происходит? Простое перекрытие, или образуются "суб-пространства" имен?

Последний раз редактировалось Андрей Параничев, 25.08.2009 в 19:59.
Ответить с цитированием
  #94 (permalink)  
Старый 26.08.2009, 00:35
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Андрей Параничев
Я никогда не сталкивался с задачами, где рационально было бы применить только множественное наследование. "Подмиксовки" в JavaScript можно делать и по-другому (ведь у нас динамическое ООП), а в большинстве других задач и обычной схемы наследования достаточно.
множественное наследование, как я понимаю, имеет смысл для наследования реализации и немного проще других вариантов

Сообщение от Андрей Параничев
Да и вообще я схему себе не очень представляю, если например (не касаясь JavaScript) один класс наследует два других класса, которые имеют одинаковые имена методов, то что происходит? Простое перекрытие, или образуются "суб-пространства" имен?
это, имхо, скорее либо из области теории (если разумно его применять проблем не будет), либо из больших древних или запущенных проектов
Ответить с цитированием
  #95 (permalink)  
Старый 26.08.2009, 00:43
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Андрей Параничев
которые имеют одинаковые имена методов, то что происходит?
Насколько я в курсе, это основная проблема множественного наследования, никак не могут выяснить, что именно должно происходить, но вроде какие-то логичные варианты там есть.
Ответить с цитированием
  #96 (permalink)  
Старый 26.08.2009, 05:48
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Riim
Насколько я в курсе, это основная проблема множественного наследования
я бы сказал, что это самый популярный аргумент. В википедии на первом месте сложность и я тоже так думаю В общем множественное наследование - замечательный способ прострелить себе ногу
Ответить с цитированием
  #97 (permalink)  
Старый 26.08.2009, 10:39
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от x-yuri
множественное наследование - замечательный способ прострелить себе ногу
Думаю на этом можно закончить
Ответить с цитированием
  #98 (permalink)  
Старый 26.08.2009, 11:36
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Множественное наследование - это шаг к усилению абстракции и упрощению реюза кода (действительно, раз научились наследовать код от одного блока, давайте научимся сразу от десяти - удобный способ повторно использовать этот код). Однако, имеет свои недостатки (поэтому, и не прижился во многих языках), одна из которых (и, возможно, основная) - Diamond problem (то, о чём спрашивал Андрей Параничев): решение зависит от реализаций, но в целом, в теории, этот алгоритм называется Method resolution order (порядок разрешения имён методов), или линеаризацией - C3 linearization - суть: выстроить (линеаризовать) дерево методов так, чтобы не возникло конфликтов имён (т.е превратить в цепь).

Альтернативой множественному наследованию являются интерфейсы и примеси (ну это и так все знают ).
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 26.08.2009 в 11:38.
Ответить с цитированием
  #99 (permalink)  
Старый 26.08.2009, 17:42
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Dmitry A. Soshnikov
Множественное наследование - это шаг к усилению абстракции и упрощению реюза кода (действительно, раз научились наследовать код от одного блока, давайте научимся сразу от десяти - удобный способ повторно использовать этот код)
а где тут усиление абстракции?

Сообщение от Dmitry A. Soshnikov
Альтернативой множественному наследованию являются интерфейсы и примеси (ну это и так все знают ).
т.е. это фактически как составляющие наследования: наследование интерфейса и наследование реализации

p.s. еще можно почитать
http://phpclub.ru/talk/showthread.ph...E2%E0%ED%E8%E5
http://phpclub.ru/talk/showthread.ph...E2%E0%ED%E8%E5
Ответить с цитированием
  #100 (permalink)  
Старый 26.08.2009, 17:56
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от x-yuri
а где тут усиление абстракции?
Можно сказать, что объект D включает в себя сразу 3 объектов (A, B,C); при этом реализация объектов А, B, C может быть не столь важна при абстрактном описании объекта D.
__________________
Тонкости ECMAScript
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск