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

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

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

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

public void foo() {
    usedByFoo();
}

private void usedByFoo() {
}

public void bar() {
}

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

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

class Outer {
    private Inner inner;

    private class Inner {};

    public Outer() {
    }

    ...
}

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

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

 Amir Rachum19 янв. 2011 г., 00:40
Может быть, это относится большеprogrammers.stackexchange.com
 NG.19 янв. 2011 г., 00:13
Я чувствую, что стиль кода слишком субъективен ... может быть, я ошибаюсь. Просто документируйте адские вещи.
 Nikita Rybak19 янв. 2011 г., 00:42
@ Амир Да, вопросы стиля кодирования процветают там.

Ответы на вопрос(2)

Решение Вопроса

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

 biziclop19 янв. 2011 г., 00:37
Я бы добавил к этому, что если существует так много внутренних классов, что это может сбить с толку, пришло время выделить некоторые из них в классы верхнего уровня.
 Jason Noack19 янв. 2011 г., 01:19
Довольно много голосов, и другого ответа нет, думаю, так будет лучше, спасибо!

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

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

Ваш ответ на вопрос