![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 1 Всего: 34 |
Существует ли в делфях множественное наследование?
Пасип. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
для неабстрактных классов - не сущетсвует. только для интерфейсов.
Добавлено @ 14:03 можно обойтись включением экземпляра класса в свой класс, как свойства. можно наследовать интерфейсы. т.е. решение все равно есть |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Только интерфейсов.
Как правило нет таких ситуаций, где бы оно действительно требовалось. Даже абстракто трудно придумать ситуацию, где бы без него нельзя было бы обойтись. Поэтому не имеет смысла вводить его в язык. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
нуууу... нельзя придумать ситуацию, в которой нельзя было бы обойтись без классов... записей... массивов... но ведь кроме граблей, множественное наследование, вполне может предоставить некоторое удобство.. согласен? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
ИМХО, если есть необходимость в множественном наследовании, значит плохо продумана иерархия классов.
Возможно в некоторых случаях это более простое, но вряд ли более грамотное решение. Это не входит в концепт паскаля, т.к. он строгий язык. Физически реализовать его можно. Даже без внедрения на уровне системы можно искуственно сэмулировать множественное наследование и на текущей версии дельфи. А уж разработчикам ввести такое понятие вообще особого труда не составит. Просто это не наш путь |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
возьму игру. не конкретную, просто - shooter(от первого лица) две иерархии классов. одна - подвижность(для создание "подвижных" и "неподвижных" объектов). вторая иерархия реализует понятия "уничтожаемости" и "неуничтожаемости"(положим, у них совершенно разная обработка взаимодействия с окружающим миром). теперь мне надобно посоздавать объекты на пересечении иерархий: неподвижные уничтожаемые, подвижные неуничтожаемые и т.д.. Как спроектировать правильнее, нежели с использованием множественного наследования? (опять же - речь не о возможных граблях и недостатках реализации, а о самом подходе) -- Например, можно было бы создать объект "двигатель" и записывать его в качестве поля. но ведь: а) у нас "однодвигательные" объекты б) неподвижные объекты должны будут иметь "фиктивный двигатель"(который не двигает) для унифицированной обработки, при том, что такое нафиг не надо(вроде, как у дерева крылья есть, просто оно ими махать не умеет - оттого не летает) |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 1 Всего: 34 |
Спасибо.
В принципе понятно. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Плохой пример. Не убедительный.
Нет разницы между подвижными и неподвижными объектами Сейчас в играх все разрушаемые объекты можно подвигать Даже если так и делить, то просто наследуем подвижный от не, и добавляем уму логику движения. А ноги и крылья добавляются уже в движимом объекте. В родителе их нет и не должно быть. Если нужны движимые по типу (бегающие, летающие, плавающие и т.п.), то просто наследуем от недвижимых, например тип "бегающий" и всех бегающих наследуем от него. Можешь дальше не продолжать. Всему можно продумать грамотную иерархию. |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 1 Всего: 34 |
Просто нужно стараться чтоб объектная модель как можно больше соотвестсвовала прикладной части.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
да, пример слабоват. к вечеру придумаю посильнее
а неразрушаемый - от разрушаемого? поставить "бесконечно жизней"? обработка разрушения - создание такого же объекта? а пересечения классов - как? разрушаемому и неразрушаемому классу отдельно прописывать одинаковую логику перемещения? делегирование синтетическим объектам? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Тогда заводи тему в религиозных войнах "Множественное наследование - Есть ли необходимость использовать?" Ибо данное обсуждение не входит в рамки данного раздела. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
Snowy, не, лучше закончить здесь. я ведь не считаю это панацеей. просто, как мне кажется, в нем(множественном наследовании) не только зло, но и добро
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
При проектировании - нет.
При реализации - да, если спроектировано хреново. Продолжать здесь не стоит, ибо это затянется и вся тема уйдёт в войны Да и не охота время на эту тему тратить. Поищи в инете подобные обсуждения - всё уже написано на данную тему. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |