Подтвердить что ты не робот

Существуют ли какие-либо соглашения по упорядочению методов Java?

У меня есть класс большого класса (40 или около того), который является частью пакета, который я буду представлять в качестве учебного курса. В настоящее время методы довольно смешаны с точки зрения полезности public/private и т.д., И я хочу упорядочить их разумным образом. Есть ли стандартный способ сделать это? Например. обычно поля указываются перед методами, конструктор перечислены перед другими методами, а геттеры/сеттеры - последними; как насчет оставшихся методов?

4b9b3361

Ответ 1

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

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

Ответ 2

  1. Классовые (статические) переменные: сначала общедоступные переменные класса, затем защищенные, а затем приватные.

  2. Переменные экземпляра: сначала общедоступные, затем защищенные, а затем частные.

  3. Конструкторы

  4. Методы: эти методы должны быть сгруппированы по функциональности, а не по объему или доступности. Например, метод закрытого класса может находиться между двумя открытыми методами экземпляра. Цель состоит в том, чтобы облегчить чтение и понимание кода.

Источник: http://www.oracle.com/technetwork/java/codeconventions-141855.html

Ответ 4

Не уверен, что есть общепринятый стандарт, но мои собственные предпочтения:

  • сначала конструкторы
  • static methods next, если есть основной метод, всегда перед другими статическими методами
  • не статические методы, как правило, в порядке значимости метода, за которым следуют любые методы, которые он вызывает. Это означает, что общедоступные методы, которые вызывают другие методы класса, отображаются по отношению к верхним и закрытым методам, которые не вызывают никаких других методов, обычно заканчиваются внизу.
  • стандартные методы, такие как toString, equals и hashcode next
  • getters и seters имеют специальное место, зарезервированное прямо в нижней части класса.

Ответ 5

40 методов в одном классе - это много.

Будет ли смысл перенести некоторые функциональные возможности в другие классы с соответствующим названием. Тогда это намного легче понять.

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

Обычно это означает, что main() идет сверху или снизу.

Ответ 6

Мое "соглашение": статический объект перед экземпляром, public перед private, конструктор перед методами, но основной метод внизу (если присутствует).

Ответ 7

Кроме того, eclipse предлагает возможность сортировки членов класса для вас, если вы почему-то их перепутали:

Откройте файл класса, перейдите в "Источник" в главном меню и выберите "Сортировать участников".

взято здесь: Способы сортировки в Eclipse

Ответ 8

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