![]() |
|
||||||||||
|
|||||
|
Покажите пжста на примере явное преимущество использования интерфейсов в написании кода. А то я пока не вижу большого смысла в них.
Насколько понял, в интерфейсе описываются методы, которые должны обязательно присутвовать в классе его использующий. |
|
|||||
|
вот возьми например какой нить фрэймворк, aswing,... посмотри реализацию компонентов в исходниках, должно стать понятнее
__________________
flash portfolio Последний раз редактировалось toFlash; 07.03.2009 в 03:07. |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,058
|
Вообще по идее сначала пишутся интерфейсы, а потом по ним пишутся классы. Интерфейсы дают кости, а классы - мясо, грубо говоря.
|
|
|||||
|
стервочка (я мужик)
|
†‡Paladin‡†, с тысячным постом Вас. и да ... ересь полнейшая.
интерфейсы нужны, что бы объединить классы в общий тип, которого нельзя добиться наследованием в силу архитектуры, или наследование не требуется в принципе. |
|
|||||
|
Регистрация: May 2007
Сообщений: 232
|
Вот пример. Допустим Вы пишете программу, в которой каждый используемый класс хотите очищать при помощи метода destroy(). При этом используемые классы могут выполнять совершенно различные функции, и не быть родственниками.
Это значит, что нужно следить, чтобы в каждом из классов была реализована функция destroy, иначе возникнет ошибка. Для решения этой задачи достаточно воспользоваться интерфейсами. Каждый класс использующий интерфейс, должен реализовывать методы, описанные в интерфейсе. В противном случае среда разработки на стадии компиляции скажет Вам об этом. Вообще я советую купить книжку Колина Мука - там очень подробно описано. |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,058
|
Кстати да. 1000й пост. Не Вам судить про ересь - Вы не евангелист. Я свои выводы сделал на основе опыта изучения открытых проектов типа Batik, т.к. пришлось с ними поработать. Там к каждому классу написан интерфейс в не зависимости от того нужно наследование или не нужно. Глядя на только одни эти интерфейсы можно легко представить структуру и масштаб не хилого проекта. Классы лишь делают черновую работу. С другой стороны в AS3 интерфейсы куцые и лично я их практически не использую в работе, предпочитая делать что-то вроде абстрактных классов.
|
|
|||||
|
ветеран форума
|
Цитата:
__________________
4am is time to rock |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
†‡Paladin‡†, писать к каждому классу интерфейс — перебор. Это значит, что разработчик кроме как «интерфейсы — это круто!» ничего больше не знает.
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Очень важный момент: работа с загружаемыми отдельно модулями:
Есть класс Main в main.swf который грузит modul.swf явлющийся классом Modul, модулей может быть много, но например все они реализуют интерфейс IModul с одним единственным методом init(); Это позволит создать такую конструкцию package { import IModul; public class Module implements IModul{ public function init():void{ } } } package { import IModul; public class Main{ var modul:IModul; .. // загрузка .. public function initModul():void{ modul.init(); } } } Только IModul будет скомпилирован в обоих классах. Это ИМХО основная задача интерфесов: служить связующим звеном между различными независимыми объектами.
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 07.03.2009 в 15:06. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|