У меня есть класс большого класса (40 или около того), который является частью пакета, который я буду представлять в качестве учебного курса. В настоящее время методы довольно смешаны с точки зрения полезности public/private и т.д., И я хочу упорядочить их разумным образом. Есть ли стандартный способ сделать это? Например. обычно поля указываются перед методами, конструктор перечислены перед другими методами, а геттеры/сеттеры - последними; как насчет оставшихся методов?
Существуют ли какие-либо соглашения по упорядочению методов Java?
Ответ 1
В некоторых соглашениях сначала перечисляются все общедоступные методы, а затем все частные - это означает, что легко отделить API от реализации, даже если нет интерфейса, если вы понимаете, что я имею в виду.
Другая идея состоит в объединении связанных методов вместе - это упрощает обнаружение швов, где вы могли бы разделить существующий большой класс на несколько меньших, более целенаправленных.
Ответ 2
-
Классовые (статические) переменные: сначала общедоступные переменные класса, затем защищенные, а затем приватные.
-
Переменные экземпляра: сначала общедоступные, затем защищенные, а затем частные.
-
Конструкторы
-
Методы: эти методы должны быть сгруппированы по функциональности, а не по объему или доступности. Например, метод закрытого класса может находиться между двумя открытыми методами экземпляра. Цель состоит в том, чтобы облегчить чтение и понимание кода.
Источник: http://www.oracle.com/technetwork/java/codeconventions-141855.html
Ответ 3
Более точная ссылка на "Кодовые обозначения": "Декларации классов и интерфейсов"
Ответ 4
Не уверен, что есть общепринятый стандарт, но мои собственные предпочтения:
- сначала конструкторы
- static methods next, если есть основной метод, всегда перед другими статическими методами
- не статические методы, как правило, в порядке значимости метода, за которым следуют любые методы, которые он вызывает. Это означает, что общедоступные методы, которые вызывают другие методы класса, отображаются по отношению к верхним и закрытым методам, которые не вызывают никаких других методов, обычно заканчиваются внизу.
- стандартные методы, такие как
toString
,equals
иhashcode
next - getters и seters имеют специальное место, зарезервированное прямо в нижней части класса.
Ответ 5
40 методов в одном классе - это много.
Будет ли смысл перенести некоторые функциональные возможности в другие классы с соответствующим названием. Тогда это намного легче понять.
Когда их меньше, их гораздо проще перечислить в естественном порядке чтения. Частая парадигма - перечислять вещи либо до, либо после того, как они вам нужны, в том порядке, в котором они вам нужны.
Обычно это означает, что main()
идет сверху или снизу.
Ответ 6
Мое "соглашение": статический объект перед экземпляром, public перед private, конструктор перед методами, но основной метод внизу (если присутствует).
Ответ 7
Кроме того, eclipse предлагает возможность сортировки членов класса для вас, если вы почему-то их перепутали:
Откройте файл класса, перейдите в "Источник" в главном меню и выберите "Сортировать участников".
взято здесь: Способы сортировки в Eclipse
Ответ 8
Используете ли вы Eclipse? Если это так, я бы придерживался порядка сортировки членов по умолчанию, потому что это, скорее всего, будет наиболее знакомо тем, кто читает ваш код (хотя это не мой любимый порядок сортировки.)