Anônimo vs classes internas nomeadas? - Melhores Práticas
Eu tenho uma classe, vamos chamá-lo de LineGraph, que renderiza um gráfico de linhas. Eu preciso subclassificá-lo, mas a classe derivada é usada apenas em um local e é acoplada à classe que a usa. Então, eu estou usando uma classe interna.
Vejo duas maneiras de fazer isso:
Classe interna anônima
public class Gui {
LineGraph graph = new LineGraph() {
// extra functionality here.
};
}
Classe interna nomeada
public class Gui {
MyLineGraph graph = new MyLineGraph();
private class MyLineGraph extends LineGraph {
// extra functionality here.
}
}
Eu não sou fã de classes internas anônimas, porque, francamente, acho que parece realmente feio. Mas, no caso de uma subclasse que é usada apenas em um lugar, existe um exagero de classe interna nomeado? Qual é a prática aceita?