Вопросы с тегом «single-responsibility»

Принцип единой ответственности гласит, что каждый модуль в системе должен нести ответственность за одну функцию или функциональность или объединение связанных функций. Другой распространенный способ сказать, что у каждого модуля должна быть только одна причина для изменения.

16
При использовании принципа единой ответственности, что представляет собой «ответственность»?
Кажется довольно ясным, что «принцип единой ответственности» не означает «только одно». Вот для чего нужны методы. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Боб Мартин говорит, что «у классов должна быть только одна причина измениться». Но …

12
Нарушает ли конструктор, который проверяет свои аргументы, SRP?
Я стараюсь максимально придерживаться принципа единой ответственности (SRP) и привык к определенной схеме (для SRP по методам), в значительной степени полагаясь на делегатов. Я хотел бы знать, является ли этот подход обоснованным или есть ли какие-либо серьезные проблемы с ним. Например, чтобы проверить ввод в конструктор, я мог бы ввести …

8
Как класс может иметь несколько методов, не нарушая принцип единой ответственности
Принцип единой ответственности определяется в Википедии как Принцип единой ответственности - это принцип компьютерного программирования, который гласит, что каждый модуль, класс или функция должны нести ответственность за одну часть функциональности, предоставляемой программным обеспечением, и эта ответственность должна быть полностью заключена в класс Если у класса должна быть только одна ответственность, …

11
Этот класс дизайн нарушает принцип единой ответственности?
Сегодня у меня был спор с кем-то. Я объяснял преимущества наличия модели богатых доменов по сравнению с моделью анемичных доменов. И я продемонстрировал свою точку зрения с помощью простого класса, который выглядит так: public class Employee { public Employee(string firstName, string lastName) { FirstName = firstName; LastName = lastname; } …

7
Принцип единой ответственности - как я могу избежать фрагментации кода?
Я работаю в команде, лидер которой является ярым сторонником принципов разработки SOLID. Однако ему не хватает большого опыта в получении сложного программного обеспечения на открытом воздухе. У нас возникла ситуация, когда он применил SRP к тому, что уже представляло собой довольно сложную кодовую базу, которая теперь стала очень сильно фрагментированной, …

8
Как мне доказать или опровергнуть, что «объекты Бога» не правы?
Краткое описание проблемы: Короче говоря, я унаследовал кодовую базу и команду разработчиков, которую мне не разрешено заменять, и использование God Objects является большой проблемой. В дальнейшем я хочу, чтобы мы перефакторили вещи, но я получаю отпор от команд, которые хотят делать все с Богом-объектами «потому что это проще», и это …

7
Управление и организация массово увеличенного количества классов после перехода на SOLID?
За последние несколько лет мы постепенно переходили на все более и более качественно написанный код, по несколько шагов за раз. Мы наконец начинаем переключаться на что-то, что, по крайней мере, напоминает SOLID, но мы еще не совсем там. После внесения изменений одна из самых больших претензий разработчиков заключается в том, …

8
Какова реальная ответственность класса?
Я продолжаю задаваться вопросом, является ли законным использование глаголов, основанных на существительных в ООП. Я наткнулся на эту блестящую статью , хотя я все еще не согласен с тем, что она делает. Чтобы объяснить проблему чуть подробнее, в статье говорится, что не должно быть, например, FileWriterкласса, но поскольку написание является …

10
Применимость принципа единой ответственности
Недавно я столкнулся с кажущейся тривиальной архитектурной проблемой. У меня был простой репозиторий в моем коде, который назывался так (код на C #): var user = /* create user somehow */; _userRepository.Add(user); /* do some other stuff*/ _userRepository.SaveChanges(); SaveChanges была простая оболочка, которая фиксирует изменения в базе данных: void SaveChanges() …

8
Не нарушает ли добавление типа возврата в метод обновления «Принцип единой ответственности»?
У меня есть метод, который обновляет данные сотрудников в базе данных. EmployeeКласс неизменен, так что «обновление» средства объекта на самом деле для создания экземпляра нового объекта. Я хочу, чтобы Updateметод возвращал новый экземпляр Employeeс обновленными данными, но теперь я могу сказать, что ответственность за метод заключается в обновлении данных сотрудника …

11
Убедитесь, что у каждого класса есть только одна ответственность, почему?
Согласно документации Microsoft, статье SOLID Wikipedia SOLID или большинству ИТ-архитекторов мы должны гарантировать, что каждый класс несет только одну ответственность. Я хотел бы знать почему, потому что, если все, кажется, согласны с этим правилом, никто не соглашается с причинами этого правила. Некоторые ссылаются на лучшее обслуживание, другие говорят, что оно …

8
Как определить, соответствует ли класс единому принципу ответственности?
Принцип единой ответственности основан на принципе высокой сплоченности. Разница между ними заключается в том, что у очень сплоченных классов есть набор обязанностей, которые тесно связаны, в то время как у классов, придерживающихся SRP, есть только одна ответственность. Но как нам определить, обладает ли определенный класс набором обязанностей и, следовательно, является …

12
Когда парадигма «Делай одно» становится вредной?
Хотите улучшить этот пост? Предоставьте подробные ответы на этот вопрос, включая цитаты и объяснение того, почему ваш ответ правильный. Ответы без достаточной детализации могут быть отредактированы или удалены. Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 8 лет назад …

10
Может / должен ли Принцип единой ответственности применяться к новому коду?
Принцип определяется как модули, имеющие одну причину для изменения . Мой вопрос, конечно, эти причины изменения не известны, пока код фактически не начинает меняться ?? Практически каждый фрагмент кода имеет множество причин, по которым он может измениться, но, безусловно, попытка предвидеть все это и разработать свой код с учетом этого …

4
В чем разница между принципом единой ответственности и разделением интересов
а) В чем разница между SRP и SoC ? Возможно, что SRP применяется на уровне класса, в то время как SoC может применяться на уровне системы , подсистемы , модуля , класса или функции . б) Если ответ на а) положительный , то применяется ли SoC на уровне класса как …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.