Размещение объявлений переменных экземпляра

StackOverflow https://stackoverflow.com/questions/218573

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top