Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2009, 08:59   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
это способ обойти те грабли, которые сами же насоздавали, когда рекламировали технологию ООП.
Нет
Это просто способ совместить а-ля ООП написанное на разных языках.
Кстати весьма корявый, тут я согласен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.08.2009, 12:05   #12
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Цитата:
Сообщение от Arhe Посмотреть сообщение
Сижу и понемногу изучаю ООП. И не могу понять роль интерфейсов в ООП. Дайте, пожалуйста, наглядный пример. Я то понимаю, что интерфейсы созданы для наследования от них
Точнее, для их реализации. Если отнаследовать от интерфейса, будет интерфейс.

Цитата:
Сообщение от Arhe Посмотреть сообщение
но я не понимаю зачем, если их методы создаются пустыми, а у теле унаследованного класса пересоздаются наново.
Если неохота заново, можно использовать адаптер или другие типы микшинов.

Цитата:
Сообщение от Arhe Посмотреть сообщение
Не легче просто создать такой метод в классе, без наследования?
Для этого есть адаптеры. Может быть, мне не понравится дефолтная реализация. Захочу -- использую адаптер, не захочу -- делаю свою реализацию. А, может быть, этот метод вызывается удалённо?

Хорошие примеры интерфейсов -- ICloneable, IComparable, IDisposable. В OpenOffice.org есть разные мелкие интерфейсы, надо смотреть по документации.

Ещё одна причина -- альтернативный подход к множественному наследованию. В .NET, Java, Delphi и некоторых других платформах множественное наследование интерфейсов вместо множественного наследования реализаций.

А для предоставления реализации есть микшины, обладающие явной ассимметрией в отличие от объектных типов.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 11.08.2009, 12:18   #13
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Эмм, а как насчтёт абстрактных методов/классов? Тоже вроде шаблона
пыщь
JTG вне форума Ответить с цитированием
Старый 11.08.2009, 12:45   #14
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Не понимаю, почему такая "нелюбовь" к интерфейсам. Вроде обычный механизм, коих тысячи. Среди которых есть действительно бесполезные.
Hollander вне форума Ответить с цитированием
Старый 11.08.2009, 12:48   #15
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Потому что они мутные, потому что про них внятного в книгах не написано. Потому что примеров использования мало, навроде RTTI - все знают зачем, некоторые даже пользуются. Но общий процент маленький.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 11.08.2009, 13:09   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не понимаю, почему такая "нелюбовь" к интерфейсам
Я например больше всего не люблю в интерфейсах о что зачастую не могу проверить правильно ли получил указатель, и на тот ли интерфейс.
Нужно кучу проверок делать, это не удобно, в то время как если работать с чистыми классами уже на стадии компиляции такая проблема исчезает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.08.2009, 13:54   #17
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Ладно, на вкус и цвет - сами понимаете.
Hollander вне форума Ответить с цитированием
Старый 11.08.2009, 14:49   #18
Arhe
Пользователь
 
Регистрация: 21.02.2008
Сообщений: 28
По умолчанию

Всем спасибо. С вашей помощью немного разобрался.
Arhe вне форума Ответить с цитированием
Старый 11.08.2009, 17:33   #19
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я например больше всего не люблю в интерфейсах о что зачастую не могу проверить правильно ли получил указатель, и на тот ли интерфейс.
Нужно кучу проверок делать, это не удобно, в то время как если работать с чистыми классами уже на стадии компиляции такая проблема исчезает.
В Delphi такой проблемы вроде бы нет или я не понял, в чём проблема.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 12.08.2009, 08:35   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В Delphi такой проблемы вроде бы нет
А это не от языка зависит.
Допустим есть некая функция, которая возвращает указатель.
Вопрос - указатель на что она вернет? Ответ - в зависимости от параметра:
Код:
 Interfase:=func(Get_me_print);
 Interfase:=func(Get_me_Doc);

 Print:=IPrint(Interfase);
 Doc:=IDoc(Interfase)
Где Get_me_print=1, а Get_me_Doc=2, interfase:IDispatch
А print и Doc соответственно интерфейсы
Но предположим функция в связи с ошибкой вернет неверный указатель, как проверить на какой интерфейс он указывает? Даже если указатель который вернулся неверный этот код выполнится верно без ошибки, но ведь результат то будет неверен.

К тому же интерфейсы любят привязываться к GUID, и прописываться в реестре - а это потенциальный мусор.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерфейсы Maks1978 Общие вопросы C/C++ 0 29.06.2009 22:11
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55
Интерфейсы MaZaHaKa Общие вопросы Delphi 1 30.11.2008 19:17
Философия программинга. Cezar Свободное общение 43 15.03.2007 10:49