2009-12-06 2 views
1

Я перерабатываю некоторый код для назначения - в настоящее время в представлении есть много кнопок и меню и один прослушиватель действий, который решает, что делать, используя event.getSource(). Из того, что я читал, люди, похоже, думают, что лучше для каждого компонента GUI иметь свой собственный исполнитель действий, возможно, созданный с помощью какой-то фабрики. Однако, кроме того, что он немного очищает код, что другие преимущества дает это, также это не означает, что в кучу будет много объектов, которые могут повлиять на производительность?use EventObject.getSource в Actionlistener

Спасибо,

Aly

ответ

1

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

  • Сначала он заставляет код работать быстрее.

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

Если вы пытаетесь иметь один слушатель (часто сам апплет или приложение объекта) выступать в качестве слушателя для нескольких компонентов, то вы расстегивая основную отправку, что является центральным для вызова методов, а также осуществляют отправку вручную , Это требует, чтобы какой-то механизм переключения использовался для различения различных компонентов, события которых вы обрабатываете. Система лучше приспособлена для этого, чем вы. Эта структура коммутатора является склонной к ошибкам и ее трудно поддерживать по мере роста программы. Оставьте отправку в систему.

Patterns for Java Events

0

Это компромисс. Код с кучей if на источнике считается уродливым, в то время как массы слушателей могут загромождать вашу память и отрицательно влиять на производительность.

Учитывая выбор, я обычно стараюсь, чтобы свести к минимуму количество кода, который мне нужно написать, поскольку меньше кода обычно означает меньше возможностей для ошибок.