algo
To the stars!
texrdcom
По этому поводу было много флейма. В результате была выработана некая точка зрения на множественное наследование... совпадающая с моей
)
Цитирую немного из одного обсуждения.
Иначе говоря, хочу я например, иметь в классе некую часть типа, например - аспект поведения (хочу чтоб объект был Синглтоном)..
Помните - народ мучался ? Как бы унаследовать синглтон.. А если унаследовать синглтон, то больше ни от чего не унаследуешь (нет множ. наследование), поэтому приходится в каждом классе писать код ДУБЛИРУЮЩИЙ.
С подмешиванием все проще.. Подмешаем в класс функционал синглтона.. Подмешаем контекст..
texrdcom - есть workaround, да. C дублированием кода вместо элегантного подмешивания.
По этому поводу было много флейма. В результате была выработана некая точка зрения на множественное наследование... совпадающая с моей
)Цитирую немного из одного обсуждения.
Множественное наследование заработало плохую репутацию. И действительно, то как оно понимается и его популярные реализации оставляют желать лучшего.
В частности самая большая ошибка при использовании МН, это то, что классы-предки отождествляются с конкретными Типами, а полученный наследник рассматривается как композитный тип. Это вообще одна из фундаментальнейших ошибок проектирования - ставить знак равенства между классом и типом.
Если избавиться от такого ошибочного взгляда, а принять, что классы могут представлять собой Части Типов, то возникает иной вариант множественного наследования - подмешивания (mixins). В этом случае конкретный класс получается в виде реализации некоторого минимального набора базовых методов и подмешивания производных реализаций, расширяющих поведение данного класса до полного определения Типа.
Иначе говоря, хочу я например, иметь в классе некую часть типа, например - аспект поведения (хочу чтоб объект был Синглтоном)..
Помните - народ мучался ? Как бы унаследовать синглтон.. А если унаследовать синглтон, то больше ни от чего не унаследуешь (нет множ. наследование), поэтому приходится в каждом классе писать код ДУБЛИРУЮЩИЙ.
С подмешиванием все проще.. Подмешаем в класс функционал синглтона.. Подмешаем контекст..
texrdcom - есть workaround, да. C дублированием кода вместо элегантного подмешивания.

