Java / Android: anonyme lokale Klassen vs benannte Klassen

Ich möchte fragen, wie es sich bei der Verwendung anonymer Klassen im Vergleich zu benannten inneren Klassen bewährt hat.

Ich schreibe eine Android-Anwendung, die viele Benutzeroberflächenelemente (Schaltflächen, Textfelder usw.) enthält. Für viele von ihnen brauche ich eine Art Zuhörer, also inonCreate der Anwendung habe ich eine Reihe von ziemlich kleinen anonymen Klassen wie:

someButton.setOnClickListener(
    new View.OnClickListener() {
        public void onClick(View v) {
            // do something...
        }
    }
);

Jeder dieser anonymen Klassen ist 5 - 20 Zeilen groß - klein genug und passt gut für Empfehlungen von Java ™ in Kürze Buch

Im Allgemeinen sollten Sie die Verwendung einer anonymen Klasse anstelle einer lokalen Klasse in Betracht ziehen, wenn:

ie Klasse hat einen sehr kurzen Körpes wird nur eine Instanz der Klasse benötigDie Klasse wird direkt nach ihrer Definition verwendet.Der Name der Klasse macht Ihren Code nicht einfacher zu verstehen.

Aber das Problem, IMO, ist, dassonCreate wird ziemlich groß und der Code wird komplexer zu lesen und zu verstehen, wenn man schnell hineinschaut. Es ist immer noch leicht zu verstehen, aber einfach zu groß.

Was wäre in einem solchen Fall besser, wenn Sie eine Reihe kleiner innerer Unterklassen hätten, in denen jede nett voneinander getrennt ist, aber nur einmal verwendet wird, oder wenn Sie lieber weiterhin anonyme Klassen verwenden?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage