![]() |
реальное применение интерфейсов, примеры из жизни ?
В большей части обучающей литературы приводятся примеры довольно далекие от практического применения, из которых не совсем ясна необходимость
использования интерфейсов. например в книге : ActionScript 3.0 Design Patterns "William B. Sanders and Chandima Cumaranatunge" приводится пример : file : IVid.as Код AS3:
Код AS3:
Код AS3:
Код AS3:
Хотелось бы увидеть примеры с реальной необходимостью добавления интерфейсов? |
а вот что у вас может быть к примеру быть 10 классов реализующих этот интерфейс. И скажем вам в массиве надо будет хранить Н-ое число экземпляров этих классов. Так вот чтоб не выкареживаться с выяснением и приведением типов и существуют интерфейсы.
|
Наследование решает те-же задачи, и количество классов и Н-ое число экземпляров этих классов.
к тому же все равно писать реализацию или прописывать функции. |
Наследование не всегда полезно и подходит для решения задачи.
|
примеры из жизни, да пожалуйста:
школа/институт интерфейсы: ITeacher(задавать домашнее задание, з/п, ...) IStudent(делать дом задание, знания ...) Вася implements IStudent(раздолбай - делает дом. задание дооолго) Мария Ивановна implements ITeacher(Супер учитель, способный воспитать и 10 Васей в людей, Лаурет различных бонусов, миллион дипломов ...) Все они ходят в школу, школа принимает всех Iteachers & IStudent несмотря кто это Вася или Мария Ивановна. |
r_r_f_r, завернул круто, но тема сисек не раскрыта)
по теме: интерфейсы удобны когда надо проверить, реализует ли инстанс этот интерфейс или нет, независимо от того экземпляр какого он класса. |
Вроде бы ещё в AS нет множественного наследования, т.е. нельзя написать:
Код AS3:
Код AS3:
ещё интерфейс нужны для того, чтобы требовать от объекта только "умения" что-то делать, не важно как он это делает. Например у меня в моём типа физ движке для водички есть силы(IPower), есть рисуемые объекты(IDrawable) от сил я требую умение применять силу(IPower.applyPower()), от рисуемых объектов - нарисовать себя(IDrawable.draw()); |
Цитата:
все учителя и ученики являются отоброжаемыми объектами и есть ещё 3-и, нет 4-ре контроллера которые ими управляют(и все они работают не с интерфейсами а с одним из супер классов(их 4-ре, т.е. много)), т.е. всю эту структуру изменить дороже выйдет, нежели написать интерфейс. Хорошо также писать класс реализующий интерфейс "по дефолту", и делегировать все действия ему(получаем практически обычное наследование, но оно не требует глобального изменения структуры приложения). Цитата:
|
можно, если нам нужно обратиться к методу , который 100% есть у родителя...а если нужно обратиться к методу который есть у нескольких наследников, но нет у родителя, то интересней проверять на интерфейс, с этим методом, чем перебирать всех наследников с этим методом
|
| Часовой пояс GMT +4, время: 03:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.