Видимо, вы имеете в виду Синглтоны . Ответ таков: в общем, это не очень хорошая идея, потому что это создает трудности для отслеживания зависимостей в вашем коде. Это, в свою очередь, делает ваш код сложным для понимания, поддержки и расширения. Более того, это затрудняет юнит-тестирование.
Если метод использует глобальные объекты, у вас нет другого способа узнать это, кроме как посмотреть исходный код. Однако, если метод использует только свои параметры и члены класса, вы понимаете его зависимости, взглянув на его сигнатуру и определение включающего класса.
Настройка модульных тестов для метода, использующего глобальные объекты, намного сложнее, чем для «обычных» методов. Кроме того, существует риск того, что кто-то забудет сбросить глобальное состояние после каждого теста, что приводит к тому, что глобальное состояние переходит к другим модульным тестам. Это делает ваши тесты тайно зависимыми от порядка выполнения, что может привести к странным результатам теста.