Я обнаружил, что это больше относится к методам, чем к классам - но я думаю, что это потому, что я просто недостаточно это делаю: держу это достаточно коротким, и подобные вопросы исчезают.
Итак, для методов - уже давно возникают вопросы о том, инициализировать ли все переменные вверху или инициализировать их рядом с местом их использования (ответ рядом с местом их использования, fwiw) - но если Вы держите свои методы достаточно короткими, это просто не имеет значения. Рядом с местом их использования находится наверху.
То же самое, по крайней мере, теоретически, для классов: держите их достаточно короткими, и внутренняя организация просто не имеет значения (ограничивающий и невозможный случай: только один метод на класс; он автоматически в любом порядке, который вы объявляете). Если в ваших классах так много методов, что вы задаетесь вопросом, как их организовать - подумайте о том, чтобы извлечь некоторые методы, которые принадлежат друг другу, в их собственный класс. Меньше, тем лучше.