Onde colocar classes internas? [fechadas]

Alguns podem argumentar que este é um candidato à questão menos importante de todos os tempos. No entanto, o estilo do código é um tópico muito importante para mim, e quero garantir que escreva o código de maneira legível - para mim e para a maioria dos desenvolvedores.

É por isso que estou me perguntando onde vocês estão declarando suas classes internas.

Estou seguindo o seguinte esquema de ordenação de métodos, porque é bastante comum:

public void foo() {
    usedByFoo();
}

private void usedByFoo() {
}

public void bar() {
}

Eu os ordeno de cima para baixo, todo método o mais próximo possível de onde é usado.

Agora eu poderia fazer o mesmo com classes internas, assim:

class Outer {
    private Inner inner;

    private class Inner {};

    public Outer() {
    }

    ...
}

Eu acho que esse é o estilo mais consistente a seguir, mas também vi pessoas declarando todas as classes internas na parte superior ou inferior do arquivo.

Que estilo devo seguir, dada a minha maneira de ordenar métodos? Qual é a maneira mais comum de fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion