Теоретически "лучше" сделать явным, что этот класс не должен создаваться экземпляром, если сделать его static
(второй вариант), поскольку он сообщает намерение ¹.
Однако в таком простом случае с практической точки зрения разница будет абсолютно нулевой2.Никто не собирается смотреть на этот класс и пытаться создать его экземпляр.
¹ Как отмечает Коди Грей, он также может помочь вам раньше обнаружить ошибки (например, забыть создать вспомогательный метод static
).Хотя эта точка зрения, безусловно, имеет свои достоинства, опять же практическое различие будет незначительным: компилятор будет жаловаться, как только вы попытаетесь вызвать метод статически в любом случае.
² На самом деле, это не всегда так.Например, компилятор C # не позволит вам определять методы расширения в не static
классе - не потому, что это невозможно, а потому, что он хочет подтолкнуть вас к «лучшей практике».