У меня есть класс, назовем его LineGraph, который отображает линейный граф. Мне нужно подклассифицировать его, но производный класс используется только в одном месте и связан с классом, который его использует. Поэтому я использую внутренний класс.
Я вижу два способа сделать это:
Анонимный внутренний класс
public class Gui {
LineGraph graph = new LineGraph() {
// extra functionality here.
};
}
Именованный внутренний класс
public class Gui {
MyLineGraph graph = new MyLineGraph();
private class MyLineGraph extends LineGraph {
// extra functionality here.
}
}
Я не поклонник анонимных внутренних классов, потому что, честно говоря, я просто думаю, что это выглядит действительно уродливо. Но в случае подкласса, который используется только в одном месте, это именованный внутренний класс overkill? Какова принятая практика?