Есть ли какое-либо соглашение о хранении методов, не связанных с каким-либо классом? [Ява]

В настоящее время я изучаю Java и, создавая проект, я создал несколько методов, которые логически не подходят ни для одного данного класса, но полезны во всем контексте проекта.

Лучший пример, который у меня есть, - это метод, который разбивает миры camelCase следующим образом:

  • splitCamelCase -> Разделить случай верблюда.

Я подумал о создании нового абстрактного класса под названием Toolbox и сохранении там этих методов, но мне интересно, есть ли какие-либо соглашения или лучшие практики по этой теме.

зачем вам использовать абстрактный класс?

Lone_Coder 30.05.2018 12:12

Вы можете просто создать класс Toolbox и сохранить свои методы как статические методы.

Lone_Coder 30.05.2018 12:15

По моему мнению, этот класс предназначен только для хранения методов для использования в других классах, а не для создания какого-либо нового экземпляра.

juan fran 30.05.2018 12:15

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

Michel_T. 30.05.2018 12:16

Статические методы @juanfran - это те, которые вы ищете, как вы можете видеть с помощью класса java.lang.Math

Lone_Coder 30.05.2018 12:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
52
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете создать свой класс ToolBox, а затем объявить его как пакет. После этого вы можете импортировать свой ToolBox в начале классов, в которых хотите использовать методы из этого ToolBox.

Ответ принят как подходящий

Нередко есть служебные классы (обычно называемые SomethingUtils), когда просто не имеет смысла помещать метод в существующий класс.

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

Как упоминалось в комментариях, вы не делаете его абстрактным классом. Это класс, наполненный статическими методами, полностью работающими с переданными им параметрами.

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

Malte Hartwig 30.05.2018 12:21

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

Ой, если вы все еще хотите иметь класс, который используется только для предоставления некоторой полезности, вы можете иметь такой класс в java, просто поместите в них какой-нибудь статический метод.

Один из лучших примеров такого класса - java.lang.Math.

например, следующий код будет работать

class MyUtilityClass
{

private MyUtilityClass()
{
// no object creation will be allowed
}

// make as many static methods you want 


}

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