PDA

Просмотр полной версии : Наследование. необходимость использования


Скрипун
03.01.2008, 23:48
Добрый день. Вот стыкаюсь иногда с такой проблемой.

В 10 ти классах есть один и тот-же метод... только 1. В свою некоторые классы наследуются от других...
короче.. пока что я просто пишу этот метод в каждом классе. (4 строчки), но так и хочется сделать "прослойку". Или ради этих 4 строчек не стоит так заморачиватся? Как делаете Вы?

CrazyFlasher
03.01.2008, 23:50
стоит...вы сами ответили на этот вопрос :) грубо говоря сделать абстрактный класс и наследовать от него эти четыре строчки :)

а вообще с наследованием надо быть осторожным...чтобы потом не получилось, что допустим вы решите в одном классе что-то изменить, а т.к. он наследуется от другого, придётся и там что-то менять...короче в больших проектах может получиться каша, поэтому нужно подходить с умом и обдуманно

iNils
03.01.2008, 23:53
Зависит от ситуации.
1. От чего происходит наследование.
2. Есть ли возможность задать один общий суперкласс.
3. Нужно ли привязывать его к разным классам или лучше выделить этот метод в отдельном классе.
4. Что делает этот метод.

Скрипун
03.01.2008, 23:59
private function initBroadcaster ():Void {
obj_AsBroadcaster = new Object();
AsBroadcaster.initialize (obj_AsBroadcaster);
obj_AsBroadcaster.addListener (this);
}


2. неа...
3. в отдельном ... хм.. неверное не получится.. только если передавать this.
4. инитиализирует

iNils
04.01.2008, 00:02
3. Вот и передавайте :)

CrazyFlasher
04.01.2008, 00:03
так тут лучше выделить этот метод в отдельном классе и передавать this

UPD: опоздал :)

etc
04.01.2008, 15:24
include вас спасет :)

Котяра
08.01.2008, 01:06
include вас спасет :)
это шутко? или я недопонял?

etc
08.01.2008, 02:32
Нет, не шутка. Хотите код в одном месте — используйте include, если других вариантов нет. То, что в конечном итоге код после компиляции окажется в разных местах, нас волновать не должно.

wvxvw
08.01.2008, 02:50
Хех, назрел такой вот вопрос. А можно сделать как в АС3 в ЕвентДиспетчере, чтобы интерфейс передавать? (ну, и соответсвенно, чтобы потом этот интерфейс использовался применительно к вновь созданному класу не меняя при этом цепочку наследования?

CrazyFlasher
08.01.2008, 10:33
можно...хотя выложи пример (может я не совсем правильно понял :))

ЗЫ: помоему include это устаревшая конструкция, которую в AS2 уже нет смысла использовать...используя её возвращаемся на несколько лет назад :) (имхо)

etc
08.01.2008, 13:46
include прекрасно и в AS3 работает.
Какие тут примеры надо-то? Написать три класса и в трех написать одну и ту же строчку с include. А во включаемом файле написать необходимый код.
Как раз получается, что код в одном месте для программиста.

Хех, назрел такой вот вопрос. А можно сделать как в АС3 в ЕвентДиспетчере, чтобы интерфейс передавать? (ну, и соответсвенно, чтобы потом этот интерфейс использовался применительно к вновь созданному класу не меняя при этом цепочку наследования?
Интерфейс цепочку наследования не изменяет.
Либо я не понял вопроса.

CrazyFlasher
08.01.2008, 13:57
Какие тут примеры надо-то?

это я по поводу того, что написал wvxvw :)

что касается include:
http://livedocs.adobe.com/flex/2/langref/migration.html
наверное мы говорим о разных инклудах? :)

etc
08.01.2008, 14:03
Инклюд один и тот же, ничего нового не появилось.