Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.01.2014, 13:43
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 11  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Интерфейсами нельзя не чего заменить, они просто id на уровня типа. С интерфейсами нельзя сделать чего-то, чего нельзя без них.

Старый 29.01.2014, 14:07
myakushka вне форума Посмотреть профиль Отправить личное сообщение для myakushka Найти все сообщения от myakushka
  № 12  
Ответить с цитированием
myakushka

Регистрация: Jan 2014
Адрес: Россия, Саратов
Сообщений: 28
Поделитесь тогда, как логичнее всего реализовать мультинаследование на as3

Старый 29.01.2014, 14:18
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 13  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Поделитесь тогда, как логичнее всего реализовать мультинаследование на as3
А я не знаю Просто сказал, что интерфейс это не то слово, которое можно вставлять при упоминании наследования. И сказал это только из-за того, что сам долго не понимал до конца смысла интерфейсов.
Когда читаешь книги и там на простых примерах опытные программисты рассказывают, что правильнее строить логику основываясь на имплементации и это кажется так естественно, но а на деле эти имплементации оказываться неудобными и излишними. Хотя могу и ошибаться, так-как это должны опытные говорить, а не я. А мультинаследования и нет не какого, только композиция.

Старый 29.01.2014, 14:41
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 14  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
myakushka - зачем вам мультинаследование? Это утопия
Ну аж если ручи чешуться вот

public class X1 extends Sprite
public class X2 extends X1
public class X3 extends X2
чем не мульти?
__________________
Марк Tween

Старый 29.01.2014, 15:23
myakushka вне форума Посмотреть профиль Отправить личное сообщение для myakushka Найти все сообщения от myakushka
  № 15  
Ответить с цитированием
myakushka

Регистрация: Jan 2014
Адрес: Россия, Саратов
Сообщений: 28
Цитата:
Сообщение от in4core Посмотреть сообщение
myakushka - зачем вам мультинаследование? Это утопия
Ну аж если ручи чешуться вот

public class X1 extends Sprite
public class X2 extends X1
public class X3 extends X2
чем не мульти?
тем, что public class X2 extends X1 может быть невозможно. а зачем мне мульти - хз))

Старый 29.01.2014, 15:37
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 16  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
тем, что public class X2 extends X1 может быть невозможно.
При таких условиях и интерфейс не поможет. Если класс А унаследован от Object, а класс В от EventDispatcher и имплементирует IB, то как классу А поможет интерфейс IB? Обяжет перетащить методы, скорее всего IEventDispatcher, которые будут по имени идентичные, но слать события они не смогут, придётся либо создавать экземпляр ED или что-то другое придумывать.

Старый 29.01.2014, 15:48
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 17  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
А я не знаю Просто сказал, что интерфейс это не то слово, которое можно вставлять при упоминании наследования. И сказал это только из-за того, что сам долго не понимал до конца смысла интерфейсов.
Очень даже нужно упоминать.

Старый 29.01.2014, 15:54
myakushka вне форума Посмотреть профиль Отправить личное сообщение для myakushka Найти все сообщения от myakushka
  № 18  
Ответить с цитированием
myakushka

Регистрация: Jan 2014
Адрес: Россия, Саратов
Сообщений: 28
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
При таких условиях и интерфейс не поможет. Если класс А унаследован от Object, а класс В от EventDispatcher и имплементирует IB, то как классу А поможет интерфейс IB? Обяжет перетащить методы, скорее всего IEventDispatcher, которые будут по имени идентичные, но слать события они не смогут, придётся либо создавать экземпляр ED или что-то другое придумывать.
Создаем dispatcher:EventDispatcher как поле класса А. Имплементируем классом А интерфейс IEventDispatcher и делегируем все методы интерфейса IEventDispatcher dispatcher`у.
Я же писал:
Цитата:
Сообщение от myakushka Посмотреть сообщение
множественное наследование можно заменить интерфейсами и композицией

Старый 29.01.2014, 16:01
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 19  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Очень даже нужно упоминать.
я не из-за скуки вступаю в дебаты, а из-за критики, так-как если я не прав, то получаю ответ и курс.
Но вот почему я считаю, что не нужно сравнивать интерфейс и наследование - наследование для меня подразумевает полноценное использование методов супер класса, а интерфейс этого дать не может.
Тот же пример с наследованием от ED и имплементация IED. Первое мне даёт возможность пользоваться всеми благами моего супер класса, а второй, это только одноимённые методы, которые не чего не могут, чтобы послать событие мне все равно придётся создавать экземпляр ED, но тогда зачем IED.
Вот и получается, что интерфейс это ID + describeType, но не супер класс. В чем не прав?)

Добавлено через 2 минуты
Цитата:
Создаем dispatcher:EventDispatcher как поле класса А. Имплементируем классом А интерфейс IEventDispatcher и делегируем все методы интерфейса
А это не похоже на класс квадратика унаследованного от спрайта и создающей в себе ещё один экземпляр спрайта?

Старый 29.01.2014, 16:12
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 20  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Еще раз.Интерфейс скрывает реализацию. У вас может быть много наследников, но все они могут делать это по разному.
Чтобы была совместимость вводят некоторый интерфейс. Классы, имплементирующие его поддерживают те методы которые в нем прописаны. Но сами методы могут делать это по разному. Например поддерживать разные форматы обработки.

Добавлено через 3 минуты
К множественному наследованию интерфейсы не применимы, а к наследованию еще как. Только задачи у них прямо противоположные. Экстендинг это собственно и есть путь к множественному наследованию. Как тут инфокор показывал.

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:08.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.