Вопросы с тегом «multiple-inheritance»

123
Есть ли «реальная» причина, по которой множественное наследование ненавидят?

Мне всегда нравилась идея поддержки множественного наследования в языке. Чаще всего это преднамеренно, и предполагаемая «замена» - это интерфейсы. Интерфейсы просто не охватывают все то же основание, что и множественное наследование, и это ограничение может иногда приводить к дополнительному...

54
Как миксины или признаки лучше, чем обычное множественное наследование?

C ++ имеет простое множественное наследование, многие языковые схемы запрещают его как опасное. Но некоторые языки, такие как Ruby и PHP, используют странный синтаксис, чтобы делать то же самое и называть это миксинами или чертами. Я много раз слышал, что миксином / признаками сложнее...

18
Нарушает ли множественное наследование принцип единой ответственности?

Если у вас есть класс, который наследует от двух разных классов, не означает ли это, что ваш подкласс автоматически делает (как минимум) 2 вещи, по одной от каждого суперкласса? Я считаю, что нет разницы, если у вас есть несколько интерфейсов наследования. Изменить: Чтобы было ясно, я считаю, что...

16
Как Traits в Scala позволяют избежать «ошибки алмаза»?

(Примечание: я использовал «error» вместо «problem» в названии по понятным причинам ..;)). Я немного изучил черты характера в Scala. Они похожи на интерфейсы в Java или C #, но допускают реализацию метода по умолчанию. Мне было интересно: не может ли это привести к «проблеме алмазов», поэтому...

15
Варианты использования множественного наследования

Java пропускает множественное наследование на том основании, что она устраняет цель разработки - сделать язык простым . Интересно, действительно ли Java (с ее эко-системой) "проста"? Python не сложен и имеет множественное наследование. Итак, не будучи слишком субъективным, мой вопрос ... Каковы...

15
Правильный обходной путь для множественного наследования в Java (Android)

У меня есть концептуальная проблема с правильной реализацией кода, которая, по-видимому, требует множественного наследования, что не было бы проблемой во многих языках ОО, но поскольку проект для Android, такого понятия, как множественное, не существует extends. У меня есть куча деятельности,...

13
Как C ++ обрабатывает множественное наследование с общим общим предком?

Я не парень C ++, но я вынужден думать об этом. Почему множественное наследование возможно в C ++, но не в C #? (Я знаю о проблеме алмазов , но я не об этом здесь спрашиваю). Как C ++ разрешает неоднозначность идентичных сигнатур методов, унаследованных от нескольких базовых классов? И почему тот...

12
Параллельные иерархии - частично одинаковые, частично разные

Есть довольно много подобных вопросов там 1 ,2 ,3 ,4 , но в этом вопросе, похоже, не совсем так, и решения не кажутся оптимальными. Это общий вопрос ООП, предполагая, что полиморфизм, дженерики и миксины доступны. Фактический язык, который нужно использовать - это OOP Javascript (Typescript), но...

11
Альтернативы множественному наследованию для моей архитектуры (NPC в стратегии в реальном времени)?

Кодирование на самом деле не так сложно . Сложная часть заключается в написании кода, который имеет смысл, читабелен и понятен. Поэтому я хочу найти лучшего разработчика и создать надежную архитектуру. Поэтому я хочу создать архитектуру для неигровых персонажей в видеоигре. Это стратегия в реальном...

11
Использование порядка разрешения методов Python для внедрения зависимостей - это плохо?

Я наблюдал за речью Рэймонда Хеттингера о Pycon «Супер рассмотренный супер» и немного узнал о MRO (порядок разрешения методов) Python, который линеаризует классы «родительские» классы детерминистическим способом. Мы можем использовать это в наших интересах, как в приведенном ниже коде, для...

10
Является ли наследование Python стилем наследования «как есть» или композиционным стилем?

Учитывая, что Python допускает множественное наследование, как выглядит идиоматическое наследование в Python? В языках с единичным наследованием, таких как Java, наследование будет использоваться, когда вы можете сказать, что один объект «a-a» другого объекта и вы хотите разделить код между...