Если объект не содержит изменяемого состояния, все может быть в порядке.Мне нравится использовать статические функции, которые не имеют побочных эффектов.(Mockists могут не согласиться с этим, поскольку вы не можете так же легко высмеивать статические функции, как интерфейсные функции.)
Но глобальное изменяемое состояние - зло.Вы можете найти множество статей по вопросам с глобальными переменными (и их другими формами, такими как синглтоны, статические поля, ...).
Если вам действительно нужно какое-то глобальное состояние, не пишите свою программус этим предположением.Вместо этого пусть DependencyInjection внедрит экземпляр объекта, который не является глобальным состоянием, в другие ваши объекты.Таким образом, вы можете легко переключаться на несколько экземпляров, как только возникнет такая необходимость.Например, при запуске тестов это действительно полезно.