Я довольно много искал об этом в переполнении стека и думаю, что этот вопрос достаточно отличается, чтобы заслужить новый вопрос.
Для интеграционных тестов мне нужно включить службу координатора распределенных транзакций (SQL Server), чтобы я мог использовать функцию отката базы данных MSTestExtensions.
Поэтому мне нужны следующие методы:
public void StartService(string serviceName)
public void StopService(string serviceName)
public void RestartService(string serviceName)
Было бы очень легко создать статический класс. Работа по превращению этого класса в синглтон в C# также несложна.
Так действительно ли имеет значение, используется ли здесь синглтон или статический класс? Мне это кажется тривиальным, но, может быть, один из них больше подходит для такого рода вещей?
Я не думаю, что мне нужно использовать интерфейсы, полиморфизм, расширяемость или возможность передавать этот класс, содержащий эти методы. Таким образом, такие преимущества синглтонов в этом случае не очень помогают. В конце концов, единственные преимущества, которые я вижу, - это ленивая загрузка класса и отсутствие необходимости добавлять статический код к каждому методу.