Цитата:
|
Есть идея про мн наследование просто использовать расширение функций вообще без наследование а фабрикой объектов
|
Я никогда не сталкивался с задачами, где рационально было бы применить только множественное наследование. "Подмиксовки" в JavaScript можно делать и по-другому (ведь у нас динамическое ООП), а в большинстве других задач и обычной схемы наследования достаточно.
Да и вообще я схему себе не очень представляю, если например (не касаясь JavaScript) один класс наследует два других класса, которые имеют одинаковые имена методов, то что происходит? Простое перекрытие, или образуются "суб-пространства" имен? |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Множественное наследование - это шаг к усилению абстракции и упрощению реюза кода (действительно, раз научились наследовать код от одного блока, давайте научимся сразу от десяти - удобный способ повторно использовать этот код). Однако, имеет свои недостатки (поэтому, и не прижился во многих языках), одна из которых (и, возможно, основная) - Diamond problem (то, о чём спрашивал Андрей Параничев): решение зависит от реализаций, но в целом, в теории, этот алгоритм называется Method resolution order (порядок разрешения имён методов), или линеаризацией - C3 linearization - суть: выстроить (линеаризовать) дерево методов так, чтобы не возникло конфликтов имён (т.е превратить в цепь).
Альтернативой множественному наследованию являются интерфейсы и примеси (ну это и так все знают ;)). |
Цитата:
Цитата:
p.s. еще можно почитать http://phpclub.ru/talk/showthread.ph...E2%E0%ED%E8%E5 http://phpclub.ru/talk/showthread.ph...E2%E0%ED%E8%E5 |
Цитата:
|
Часовой пояс GMT +3, время: 19:21. |