В настоящее время я изучаю Java и, создавая проект, я создал несколько методов, которые логически не подходят ни для одного данного класса, но полезны во всем контексте проекта.
Лучший пример, который у меня есть, - это метод, который разбивает миры camelCase следующим образом:
Я подумал о создании нового абстрактного класса под названием Toolbox и сохранении там этих методов, но мне интересно, есть ли какие-либо соглашения или лучшие практики по этой теме.
Вы можете просто создать класс Toolbox и сохранить свои методы как статические методы.
По моему мнению, этот класс предназначен только для хранения методов для использования в других классах, а не для создания какого-либо нового экземпляра.
Нет, класс abstact - это плохая идея, потому что в нем говорится, что он был создан для расширения, но это не так. Итак, хорошая идея - создать последний служебный класс со многими общедоступными статическими методами.
Статические методы @juanfran - это те, которые вы ищете, как вы можете видеть с помощью класса java.lang.Math




Вы можете создать свой класс ToolBox, а затем объявить его как пакет. После этого вы можете импортировать свой ToolBox в начале классов, в которых хотите использовать методы из этого ToolBox.
Нередко есть служебные классы (обычно называемые SomethingUtils), когда просто не имеет смысла помещать метод в существующий класс.
По сути, в этом нет ничего плохого, но если вы обнаружите, что у вас много методов или служебных классов, тогда ваш дизайн может быть немного неправильным, и вы программируете более процедурным, чем объектно-ориентированным способом.
Как упоминалось в комментариях, вы не делаете его абстрактным классом. Это класс, наполненный статическими методами, полностью работающими с переданными им параметрами.
Чтобы усилить его служебный характер, вы можете сделать класс final, а его конструктор - частным. Это «заставляет» любого пользователя этого класса использовать только существующие статические методы. Конечно, это совершенно необязательно.
Как сказал сэр Каяман, если у вас слишком много служебных классов и методов, это означает, что ваш код более процедурный, чем объектно-ориентированный.
Ой, если вы все еще хотите иметь класс, который используется только для предоставления некоторой полезности, вы можете иметь такой класс в java, просто поместите в них какой-нибудь статический метод.
Один из лучших примеров такого класса - java.lang.Math.
например, следующий код будет работать
class MyUtilityClass
{
private MyUtilityClass()
{
// no object creation will be allowed
}
// make as many static methods you want
}
зачем вам использовать абстрактный класс?