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

Каковы различия между классами Helper и Utility?

Как определить, как вызвать класс XHelper или XUtils?

На мой взгляд:

Класс помощника - это класс, который может быть создан и выполнять некоторые бизнес-операции

Класс Utils - это статический класс, выполняющий малые и повторяющиеся операции на некотором экземпляре (пример классов utils ArrayUtils или IOUtils из Apache)

4b9b3361

Ответ 1

Существует много стилей именования. Я бы предложил Utils только потому, что он более распространен.

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

Помощник может быть классом утилиты, или он может быть с сохранением состояния или требует создания экземпляра. Я бы избегал этого, если это возможно.

Если вы можете сделать имя более конкретным. например если у него есть методы сортировки, сделайте его XSorter

Для массивов вы можете найти вспомогательные классы, например

Array
Arrays
ArrayUtil
ArrayUtils
ArrayHelper

BTW короткая рука для класса утилиты - это перечисление без экземпляров

enum XUtils {;
    static methods here
}

Если вам нужно реализовать интерфейс, я бы использовал безстоящий Singleton.

enum XHelper implements RequiredInterface {
   INSTANCE;
   // no instance fields.
}

Ответ 2

В общем? Это совершенно произвольно. Для этого нет правил.

Ответ 3

Утилита - это "листовой узел" класса общего пользования. То есть он не имеет каких-либо зависимостей от вашего проекта и может быть перенесен из проекта в проект, не ломаясь и не становясь бесполезным. Примеры: Vector3, RandomNumberGenerator, StringMatcher и т.д.

Кажется, "помощником" является любой класс, цель которого - помочь другому классу. Это может зависеть или не зависеть от вашего проекта. Если вы создаете класс GameNetworkClient, вы можете сказать, что класс GameNetworkConnection является "помощником", поскольку он "помогает" GameNetworkClient.

То, как разработчики относятся к инструментам, отражает общее использование этих слов. Если вы можете вспомнить слуховые аппараты, описанные как "полезные" или "полезные", полезный инструмент имеет тенденцию иметь некоторый контекст (терка для сыра помогает натирать сыр, стриппер для кукурузы помогает очищать кукурузу, скоростной загрузчик помогает перезарядить огнестрельное оружие). Ожидается, что "утилита" будет работать в разных контекстах (WD-40, клейкая лента, армейские ножи, клей, фонарик и т.д.).

Ответ 4

Для этого нет окончательного ответа. Выясните одну схему именования и придерживайтесь ее. Именование ваших пакетов и классов является важной частью архитектуры программного обеспечения, и никто не может принять это решение от вас.

Мне лично нравится XHelper лучше, но я вижу XUtils чаще в чужом коде.

Мне также нравится схема именования "множественного числа", которую вы найдете как в JDK, так и Guava:

если класс имеет дело с объектами Collection, он называется Collections

Массив > Массивы (jdk)
Список > Списки (guava)
Картa > Карты (guava)

и др.

Ответ 5

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

Для меня это примерно так:

utils - Статический класс, который можно свободно перемещать и импортировать в любое место.

Делать общие задачи, которые могут быть полезны в разных модулях. Как сказал Питер Лоури, более конкретные имена полезны.

помощник - класс помогает другому классу или модулю.

Задачи, которые используются только в размещенном им модуле и не имеют смысла импортироваться в другое место. Следовательно, имя может быть более конкретным - ModuleNameHelper (например, AdministrationHelper, LoginHelper)