Если класс становится слишком громоздким с множеством методов и внутренних классов, то, вероятно, это плохой выбор дизайна (сплоченность слишком низкая). Я иногда позволяю классам добираться таким образом случайно, и с ними ужасно иметь дело позже - эти дни, если я смогу увидеть что-то подобное, я, как правило, реорганизую его, возможно, даже в отдельный пакет. Если вы дошли до того, что у вас так много внутренних классов, что вы не знаете, что с ними делать, я бы выбрал этот подход. Даже есть некоторые, которые советуют вообще не использовать внутренние классы по этой причине (хотя я не согласен - они являются ценным ресурсом при правильном использовании, вам просто нужно позаботиться о том, чтобы они не вышли из-под контроля).

орые могут поспорить, что это кандидат на наименее важный вопрос всех времен. Тем не менее, стиль кода - это очень важная тема для меня, и я хочу убедиться, что я пишу код в удобочитаемом виде - для меня и большинства разработчиков.

Вот почему мне интересно, где вы, ребята, объявляете свои внутренние занятия.

Я следую следующей схеме заказа метода, потому что она довольно распространена:

public void foo() {
    usedByFoo();
}

private void usedByFoo() {
}

public void bar() {
}

Я заказываю их сверху донизу, каждый метод как можно ближе к тому, где он используется.

Теперь я могу сделать то же самое с внутренними классами, вот так:

class Outer {
    private Inner inner;

    private class Inner {};

    public Outer() {
    }

    ...
}

Я думаю, что это самый последовательный стиль для меня, но я также часто видел, как люди объявляют все внутренние классы либо вверху, либо внизу файла.

Какой стиль мне следует придерживаться, учитывая мой способ заказа методов? Какой самый распространенный способ сделать это?