![]() |
Интерфейсы
Покажите пжста на примере явное преимущество использования интерфейсов в написании кода. А то я пока не вижу большого смысла в них.
Насколько понял, в интерфейсе описываются методы, которые должны обязательно присутвовать в классе его использующий. |
вот возьми например какой нить фрэймворк, aswing,... посмотри реализацию компонентов в исходниках, должно стать понятнее
|
ну например
Код AS3:
|
Вообще по идее сначала пишутся интерфейсы, а потом по ним пишутся классы. Интерфейсы дают кости, а классы - мясо, грубо говоря.
|
†‡Paladin‡†, с тысячным постом Вас. и да ... ересь полнейшая.
интерфейсы нужны, что бы объединить классы в общий тип, которого нельзя добиться наследованием в силу архитектуры, или наследование не требуется в принципе. |
Вот пример. Допустим Вы пишете программу, в которой каждый используемый класс хотите очищать при помощи метода destroy(). При этом используемые классы могут выполнять совершенно различные функции, и не быть родственниками.
Это значит, что нужно следить, чтобы в каждом из классов была реализована функция destroy, иначе возникнет ошибка. Для решения этой задачи достаточно воспользоваться интерфейсами. Каждый класс использующий интерфейс, должен реализовывать методы, описанные в интерфейсе. В противном случае среда разработки на стадии компиляции скажет Вам об этом. Вообще я советую купить книжку Колина Мука - там очень подробно описано. |
Цитата:
|
Цитата:
|
†‡Paladin‡†, писать к каждому классу интерфейс — перебор. Это значит, что разработчик кроме как «интерфейсы — это круто!» ничего больше не знает.
|
Очень важный момент: работа с загружаемыми отдельно модулями:
Есть класс Main в main.swf который грузит modul.swf явлющийся классом Modul, модулей может быть много, но например все они реализуют интерфейс IModul с одним единственным методом init(); Это позволит создать такую конструкцию Код AS3:
Код AS3:
Код AS3:
Только IModul будет скомпилирован в обоих классах. Это ИМХО основная задача интерфесов: служить связующим звеном между различными независимыми объектами. |
| Часовой пояс GMT +4, время: 21:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.