В пространстве имен System.Data.Entity
есть класс DbFunctions
. Он имеет почти 100 функций, которые обрабатывают манипуляции строк, вычисления DateTime и статистические функции. На SO есть много вопросов по SRP, так что считайте, что это подходящий форум. Wikipedia
определяет SRP следующим образом:Нарушает класс DbFunctions SRP
Единый ответственности принцип гласит, что каждый модуль или класс должен нести ответственность за одной части функциональности , предоставляемой программным обеспечением, и что ответственность должна быть полностью инкапсулированный классом , Все его услуги должны быть четко выровнен с этой ответственностью
Мне кажется, что DbFunctions является нарушителем.
При определении того, что представляет собой цель класса, многие люди выступают за подсчет количества «и», которые вы используете в определении. Более одного, и вы можете быть в нарушении СРП. По моему подсчету, по крайней мере 3 в DbFunctions
. Является ли мое понимание SRP ошибочным или слишком буквальным? Я знаю, что всегда есть крайники, но это, на мой взгляд, похоже, что это нарушает SRP. Это, конечно же, не уменьшает ультра-полезность класса.
Соответствует ли этот класс стандарту SRP?
Downvote? Пожалуйста ... нет ничего плохого в этом вопросе. Я много размышлял и изучал предмет и искал значимые ответы. –
Вопрос действительно показывает хорошее количество мыслей и исследований, но вы разместили его на неправильном сайте. SO не относится к конкретным вопросам программирования, а это не так. –
@MadPhysicist ... У меня были смешанные эмоции о том, где писать. На SO есть много основанных на мнении вопросов SRP, поэтому я решил опубликовать здесь. Действительно, большинство всего, что SOLID связано с мнениями, и есть много сообщений SO по этому вопросу. Если администраторы SO не согласны со мной, может ли кто-то перейти на соответствующий форум? –