Я видел, как некоторые разработчики помещали объявления переменных экземпляра в конце классов, хотя в основном я вижу их в верхней части. Единственными причинами, которые я могу придумать для этого, являются стилистические предпочтения или, возможно, это упрощает работу в среде IDE. Есть ли более законная причина выбора этого стиля?
Размещение объявлений переменных экземпляра
Ответ 1
Из-за "Программы на" интерфейс ", а не" реализации ". (Gang of Four, 1995: 18) ( http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1), некоторые люди предпочитают объявлять переменные экземпляра в нижней части класса. теория заключается в том, что пользователь класса больше интересуется тем, что они могут делать с классом (методами), в отличие от того, как что-то делается (переменные). Размещение методов в верхней части класса предоставляет их сначала пользователю, когда они смотрят на код.
Ответ 2
Нет особой "хорошей" причины для этого так или иначе. Единственное, что действительно имеет значение, это то, что все в одном проекте делают то же самое.
Однако размещение их в верхней части гораздо более распространено в моем опыте, и это практика, рекомендованная Руководством по стилю Java, так что с чем я поеду.
Вы можете применить выбранное соглашение с помощью автоматического форматирования исходного кода, например Jalopy, или того, что поставляется с Eclipse.
Ответ 3
В основном (если не полностью) личные предпочтения. Мне они нравятся наверху, но я не мог по-настоящему дать ему больше оснований для этого, потому что это так, как я привык.
Ответ 4
Большинство переменных экземпляра private
, поэтому я склоняюсь к ним, потому что объявляю участников в порядке уменьшения видимости. Если бы я объявил их в порядке увеличения видимости, они были бы наверху, что тоже разумно.
То, что мне не нравится, - это приватные поля, за которыми следуют публичные поля, за которыми следуют частные методы. Если я разрабатываю класс клиента, я хочу, чтобы все общественные части вместе (так как это все, что меня интересует.)
Ответ 5
Я всегда рационализировал, что если у вас есть переменная уровня частного класса, то вы либо жестко настроили конфигурацию, либо отслеживаете состояние так или иначе. Если вы отслеживаете состояние, то 1) это должно быть очевидным для всех, кто собирается писать код в файле с момента открытия файла, и 2) отслеживать множество состояний - это огромный запах кода, а если мои разработчики делают это, тогда я хочу, чтобы это было очевидно. Поэтому, ставя его наверху, imho, делает плохой код более очевидным и служит предупреждением для будущих людей, которые редактируют класс.
Определенно отделяйте ваши общедоступные/защищенные vs частные поля и члены, хотя люди, заинтересованные в одном, вероятно, не заинтересованы в другом.