У меня есть большой класс (около 40 методов), который является частью пакета, который я буду отправлять как курсовую работу. В настоящее время методы довольно сложны с точки зрения полезности общего / частного и т. Д., И я хочу их разумно упорядочить. Есть ли стандартный способ сделать это? Например, обычно поля перечисляются перед методами, конструктор (ы) перечисляются перед другими методами, а getters / setters последними; как насчет остальных методов?
java
methods
conventions
fredley
источник
источник
Ответы:
В некоторых соглашениях сначала перечисляются все открытые методы, а затем все частные - это означает, что легко отделить API от реализации, даже если нет никакого интерфейса, если вы понимаете, о чем я.
Другая идея состоит в том, чтобы сгруппировать связанные методы вместе - это облегчает обнаружение швов, где можно разделить существующий большой класс на несколько более мелких и более целевых.
источник
Классовые (статические) переменные: сначала общедоступные переменные класса, затем защищенные, а затем приватные.
Переменные экземпляра: сначала общедоступные, затем защищенные, а затем частные.
Конструкторы
Методы: эти методы должны быть сгруппированы по функциональности, а не по объему или доступности. Например, метод закрытого класса может находиться между двумя открытыми методами экземпляра. Цель - облегчить чтение и понимание кода.
Источник: http://www.oracle.com/technetwork/java/codeconventions-141855.html
источник
Более точная ссылка на «Условные обозначения кода»: «Объявления классов и интерфейсов»
источник
Не уверен, что существует общепринятый стандарт, но мои собственные предпочтения таковы;
toString
,equals
аhashcode
затемисточник
new Thing()
должен привести только к созданию новой вещи. Это не должно приводить к открытию соединений с базой данных, записи файлов и т. Д. И т. Д.40 методов в одном классе - это много.
Имеет ли смысл перенести некоторые функциональные возможности в другие - с подходящими именами - классы. Тогда это намного легче понять.
Когда их меньше, их намного проще перечислить в естественном порядке чтения. Частая парадигма - перечислять вещи до или после того, как они вам нужны, в том порядке, в котором они вам нужны.
Обычно это означает, что
main()
идет сверху или снизу.источник
onPause()
, иonResume()
т.д., а также все моиOnClickListener
поля, которые, хотя они и являются поля, не смотрят или ведут себя , как их , так что это разумно перечислите их отдельно.Мое "соглашение": статическое перед экземпляром, публичное перед приватным, конструктор перед методами, но основной метод внизу (если есть).
источник
Кроме того, eclipse предлагает возможность сортировать участников класса, если вы по какой-то причине перепутали их:
Откройте ваш файл класса, перейдите к «Source» в главном меню и выберите «Sort Members».
взяты отсюда: методы сортировки в Eclipse
источник
Вы используете Eclipse? Если это так, я бы придерживался порядка сортировки членов по умолчанию, потому что он, вероятно, наиболее знаком тем, кто читает ваш код (хотя это не мой любимый порядок сортировки.)
источник