Вы можете найти "какого-нибудь блоггера", который почти ничего не любит.В статических методах нет ничего плохого, если любое состояние, с которым они работают, является локальным по отношению к методу / передаваемому при каждом вызове (то же самое предостережение применяется к методам экземпляра в singleton).
Любой подход должен быть в порядке, просто выберите тот, который вы предпочитаете.Как общее практическое правило, используйте статические методы, если ваш одноэлементный экземпляр не будет содержать какое-либо состояние, которое может быть изменяемым во время выполнения.В противном случае, если синглтон предназначен для хранения состояния, а не просто в качестве хранилища для нескольких утилитарных методов, то сделайте его синглтоном.
Единственный разумный аргумент против использования статических методов, с которым я столкнулсяв том, что статические методы проблематичны для макета в целях юнит-тестирования.Но я предполагаю, что вы, вероятно, не проводите фиктивное модульное тестирование, и я думаю, что ценность тестирования с фиктивными объектами, как правило, завышена, когда вы смотрите на значение, которое получается из этого, относительно объема работы, которая идет на настройкутестовый набор (ы).