Pregunta

Estoy refactorización algo de código para una misión - Actualmente la vista tiene un montón de botones y menús y un oyente acción que decide qué hacer mediante el uso de event.getSource (). Por lo que he leído la gente parece pensar que es mejor para cada componente de interfaz gráfica de usuario para tener su propio oyente de action, tal vez creada a través de una especie de fábrica. Sin embargo aparte de que la limpieza del código un poco ¿Qué otros beneficios das esto? - Tampoco esto no significa mucho más objetos estará en el montón y podría afectar al rendimiento

Gracias,

Aly

¿Fue útil?

Solución

Utilización de detectores separados significa que no debería ser necesario realizar pruebas booleanas para determinar qué se debe hacer en su oyente. Esto tiene dos ventajas

  • En primer lugar, hace que el código correr un poco más rápido.

  • En segundo lugar se mejora la capacidad de mantenimiento y extensibilidad de su código. Si es necesario agregar un nuevo componente, que no es necesario modificar los métodos existentes.

Si tratamos de tener un oyente (a menudo el applet o aplicación propio objeto) actúan como oyente por varios componentes, entonces usted está deshaciendo el envío básica que es fundamental para llamar a los métodos, y está implementando el envío a mano. Esto requiere que algún tipo de mecanismo de conmutación se utiliza para distinguir los diversos componentes cuya eventos que están manejando. El sistema está mejor equipado para hacer esto que tú. Esta estructura de conmutación es a la vez propenso a errores y difícil de mantener ya que el programa crece. Deja el envío al sistema.

Fuente: Patrones para Java Eventos

Otros consejos

Es una solución de compromiso. Código con un montón de if de la fuente se considera feo, mientras que las masas de los oyentes pueden saturar su memoria y tener un efecto negativo en el rendimiento.

Dada la elección, por lo general voy para lo que reduce al mínimo la cantidad de código que tengo que escribir, ya que por lo general menos código significa menos oportunidades para los insectos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top