Здравствуйте, minorlogic, Вы писали:
VD>>http://en.wikipedia.org/wiki/Diamond_problem
M>Вы же прочли что эта проблема решена в С++ ? на тоже вики странице ?
Это где же такое написанно?
M>Или что то путаю , или миксины создают различную имплементацию много раз ?
Миксины,точнее трэйтсы (это более продуманная реализация) не приводит к наследованию. Мы как бы просто приказываем компилятору скопировать код в наш класс и тем самым добавить в него нужную нам фукнциональность. Тоже самое конечно можно сделать просто копи-пэстом, но при этом начинается проблема копи-пэста, когда повяляются множество копий одного и того же (по сути) кода и она могут оказаться арссинхронизированными. Тут же копирование проихводится во время компиляции, что устраняет проблему рассинхронизации.
К тому же трэйтсы предполагают еще и средства разруливания неоднозначностей. Так методы можно переименовывать, ипотрировать толко для реализации методов интерфейсов и замещать методами из класса в который производится импорт.
Но забавно, что языки в которых есть фукнции высшего порядка зачастую вообще позволяют использоват другую технику. Лично я вообще не нуждался в МН в посление годы. Как-то привыкаешь проектировать без этго и получается даже лучше. Хотя возможно тут причаной является банальное повышение опыта.
... << RSDN@Home 1.2.0 alpha rev. 637>>