Так что я мог бы написать класс с именем "ActiveDirectoryHelper" (вонючий, я знаю), который имеет CreateComputerObject, FindComputerObject и DeleteComputerObject.Я думаю, что это должно быть разбито на три отдельных класса, нет?
Согласно классу SRP должна быть только одна причина для изменения.Например, если вы ожидаете, что в какой-то момент вы захотите изменить логику создания для ComputerObject, и это изменение не повлияет на методы Find * и Delete *, вы должны извлечь CreateComputerObject в отдельный класс: ComputerObjectFactory.
Но что более важно, если бы я неукоснительно применил SRP, получу ли я десятки и десятки файлов классов .cs в моем проекте Visual Studio / C #?
Это удивительно частый вопрос / аргумент, который вы слышите на земле РС, где некоторые люди предпочитают гигантские «классы богов» и используют регионы кода для организации.Большое количество занятий, как правило, очень хороший знак.В большинстве случаев это делает ваш код более читабельным, тестируемым и организованным.В конце концов, C # - это объект -ориентированный язык, так что не бойтесь создавать больше классов.
Если так, и если так и должно быть, как это сделать?Вы организовываете свои проекты?
Использовать, например, пространства имен и папки?