Размещение объявлений переменных экземпляра - PullRequest
10 голосов
/ 20 октября 2008

Я видел, как некоторые разработчики помещали объявления переменных экземпляра в конце классов, хотя в основном я вижу их размещенными сверху. Единственные причины, которые я могу придумать для этого, - это стилистические предпочтения или, может быть, это как-то облегчает их работу в IDE. Есть ли более законная причина выбора этого стиля?

Ответы [ 5 ]

17 голосов
/ 20 октября 2008

Из-за «Программы для« интерфейса », а не« реализации ».» (Gang of Four 1995: 18) (http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1), некоторые люди предпочитают объявлять переменные экземпляра внизу класса. Теория заключается в том, что пользователь класса больше интересуется тем, что он может делать с классом ( методы), в отличие от того, как что-то делается (переменные). Размещение методов в верхней части класса открывает их сначала пользователю, когда они смотрят на код.

14 голосов
/ 20 октября 2008

Нет особо «веских» причин делать это так или иначе. Единственное, что действительно имеет значение, это то, что все в одном проекте делают это одинаково.

Однако, по моему опыту, размещение их на вершине гораздо более распространено, и это практика, рекомендованная в Руководствах по стилю Java , поэтому я бы с этим согласился.

Вы можете применить выбранное соглашение с помощью автоматического средства форматирования исходного кода, такого как Jalopy или того, что поставляется с Eclipse.

1 голос
/ 02 августа 2014

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

Определенно отделите ваши открытые / защищенные от личных полей и участников, потому что люди, заинтересованные в одном, скорее всего, не заинтересованы в другом.

1 голос
/ 11 сентября 2009

Большинство переменных экземпляра private, поэтому я стараюсь размещать их внизу, потому что я объявляю элементы в порядке уменьшения видимости. Если бы я объявил их в порядке увеличения видимости, они были бы наверху, что также разумно.

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

1 голос
/ 20 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...