![]() |
Цитата:
[не принципиальное, может надуманное] Убрал кнопку - убрал обработчик Перенёс кнопку в другой класс - перенёс обработчик, а не полез править код метода, где мог отломать по невнимательности работу других кнопок [/не принципиальное, может надуманное] Отказ от условной логики - это вообще тенденция ООП. Понятное дело, что она нужна, но зачем же её делать на ровном месте |
Цитата:
|
Добавлю
— вызов функции (обработчика) независимо от кнопки (события), когда надо. — возможность объединять повторяющийся код в ситуациях, когда при нажатии на разные кнопки надо выполнять действия А и В, В и С, А и С. |
Цитата:
надо сделать что-то ещё по клику на кнопке - дописываешь код, а вот должен ли этот дополнительный код выполняться при вызове из другого куска? Нагляднее вызвать внутри обработчика функцию, и эту же функцию вызывать из других участков - видно кто что делает Цитата:
Захотел поменять поведение кнопки A, а должно ли меняться поведение кнопки B? Если вместо использования одного onClick на кнопки A и B будет написано такое: Код AS3:
А если бы был один обработчик onClick - он бы поменял и не задумался что там ещё кнопка B есть. |
А вообще, по сути моё добавление не относится к вопросу логика/не логика. Можно и в if'ах писать вызовы отдельных функций. Это скорее для меня воспринимается как единый стиль — минимально ответственные функции, представляющие поведение класса, а обработчики каких-то там кнопок)) — всего лишь триггеры, способные запускать эти функции. То есть реакция на нажатие кнопки и само действие (метод класса) — это разные вещи.
И вот огород из if'ов в мультихендлере никак не ложится в этот стиль с минимальной ответственностью. |
"Уговорили", но частично. Пойду с собой на компромисс, и добавлю в функцию(которая называет кнопку(наполняет ее TextField) и вешает слушатель события) еще один аргумент boolean, он будет отвечать за то, чтоб вешать слушатель события в "общую функцию" или нет. То есть, если мне понадобиться отделить эту кнопку от остальных, просто укажу false и повешу слушатель вручную!
P.S. Спасибо за помощь, реально помогли, да еще и узнал от Вас много чего полезного. =) |
| Часовой пояс GMT +4, время: 13:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.