Me gustaría preguntar cuál es la buena práctica sobre el uso de clases anónimas vs. clases internas con nombre?Java/Android: clases locales anónimas vs clases nombradas
Estoy escribiendo una aplicación de Android, que incluye muchos elementos de la interfaz de usuario (botones, campos de texto, etc.). Para muchos de ellos que necesitan algún tipo de oyentes, por lo que en onCreate
de la aplicación tengo montón de muy pequeñas clases anónimas como:
someButton.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
// do something...
}
}
);
Cada uno de dicha clase anónima es de 5 - 20 líneas grande - lo suficientemente pequeño y encaja bien para las recomendaciones de Java ™ en una cáscara de nuez libro:
en general, se debe considerar el uso de una clase anónima en lugar de una clase local si:
- La clase tiene un cuerpo muy corto.
- Solo se necesita una instancia de la clase.
- La clase se usa justo después de que se haya definido.
- El nombre de la clase no hace que su código sea más fácil de entender.
Pero el problema, la OMI, es que se convierte en onCreate
bastante grande y el código se vuelve más compleja de leer y entender por rápida, de integrarse a ella. Todavía es fácil de entender, pero simplemente demasiado grande.
Entonces, ¿cuál sería la mejor práctica en tal caso? ¿Tiene un montón de pequeñas subclases internas, donde cada una de ellas está muy bien separada, pero se usa solo una vez o mejor, siga usando clases anónimas?
mi experiencia: sigan usando clases anónimas pero, intente mover una parte de su código a uno (o más) métodos privados y llámelos desde el método onCreate. – mhshams