|
|
|||||
[+4 06.05.14]
|
Не знаю по мне колбек нужен по ситуации. Вот такой пример есть :
Скажем вы используете класс стороннего разработчика, создающий дисплей объект в зависимости от настроек xml. При этом xml берется с хоста разраба. ( в принципе это и не важно даже). В итоге, после загрузки того самого xml создается этот объект. - далее происходит тот самый коллбек, который вам дает возможность продолжить описание своего Main. class Main .... addChild(object(func)); function func() { trace('object created') do something } ..... 1. Лишняя ( дополнительная) строка по добавлению события ( ну допустим другие события и не создаются для объекта кроме одного этого) 2. В памяти висит этот эвент пока не очистится мусорщиком или не будет удален вручную Имхо Добавлено через 2 минуты Ну а по факту, кому как нравится, можно делать по разному. Если вы понимаете и то и то, логично , что в итоге в зависимости от ситуации вы сделаете лучшую реализацию , чем тот, кто этого не понимает, и вам же проще потом будет с этим работать, и понимать старую писанину... |
|
|||||
Цитата:
== if(_complete) if (result.success) { continueProgram(); } else { tryLogin(); } _complete=null; if(_complete) if (result.success) { continueProgram(); } else { _connection.login(pair.usr, pair.pwd, onLogin); } _complete=null; когда приходит ответ от сервера он не знает куда ему деваться Цитата:
Цитата:
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Не понимаю, почему люди тыкают в бмв и говорят, что оное хорошо... только автомобиль лучше.
А ещё расскажите, что делать в случае ошибок. Ещё 2 метода передавать?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
@f.g.programmer, это очень обидно, что Вы думаете что я не вижу эту параллель.
Я Вам пытаюсь сказать, что если класс отработает больше, чем вызов одного метода то совершенно очевидно что нужно делать незануление коллбека. А если класс создан с целью один раз дёрнуть метод — вообще стоило бы это дело передавать в метод? Почему бы это дело не передать в конструктор или, ещё лучше, вообще в ввиде функции оформить? if(_complete) if (result.success) { continueProgram(); } else { //передали коллбек _connection.login(pair.usr, pair.pwd, onLogin); } //занулили какую-то хрень _complete=null; P.S. я пьян, завтра могу передумать сильно
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
[+4 06.05.14]
|
Мне кажется тут идет разговор если ошибок быть не может. А если нужны парамы на ошибки ит .д. без КастомИвентов тут уже не обойтись, как я и сказал это приемлимо более менее в случае 1 использоваемого события
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
А по мне так стандартных хватит.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Цитата:
_complete(result.success); или _complete("нет связи"|"все ок"|"нет такого файла"); Меня всегда напрягают альтернативы, когда можно сделать кучей способов и все они кажутся одинаковыми
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
@GBee, позвольте. Error Event и дёрганье метода с параметром это 2 совсем разные вещи.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Да, пожалуй пример не очень удачен, так как я его подгонял под данную ситуацию. У меня есть дурная привычка использовать обычные колбек-методы везде, где можно обойтись без событий. Поэтому я стараюсь избегать потенциально опасных мест, даже если их главная опасность - кривой код.
Последний раз редактировалось f.g.programmer; 23.01.2011 в 02:19. |
Часовой пояс GMT +4, время: 07:01. |
|
« Предыдущая тема | Следующая тема » |
|
|