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

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

199
При использовании принципа единой ответственности, что представляет собой «ответственность»?

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

66
Нарушает ли конструктор, который проверяет свои аргументы, SRP?

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

64
Как класс может иметь несколько методов, не нарушая принцип единой ответственности

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

63
Этот класс дизайн нарушает принцип единой ответственности?

Сегодня у меня был спор с кем-то. Я объяснял преимущества наличия модели богатых доменов по сравнению с моделью анемичных доменов. И я продемонстрировал свою точку зрения с помощью простого класса, который выглядит так: public class Employee { public Employee(string firstName, string lastName) {...

57
Принцип единой ответственности - как я могу избежать фрагментации кода?

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

56
Как мне доказать или опровергнуть, что «объекты Бога» не правы?

Краткое описание проблемы: Короче говоря, я унаследовал кодовую базу и команду разработчиков, которую мне не разрешено заменять, и использование God Objects является большой проблемой. В дальнейшем я хочу, чтобы мы перефакторили вещи, но я получаю отпор от команд, которые хотят делать все с...

50
Управление и организация массово увеличенного количества классов после перехода на SOLID?

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

42
Какова реальная ответственность класса?

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

40
Применимость принципа единой ответственности

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

37
Не нарушает ли добавление типа возврата в метод обновления «Принцип единой ответственности»?

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

37
Убедитесь, что у каждого класса есть только одна ответственность, почему?

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

34
Как определить, соответствует ли класс единому принципу ответственности?

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

21
Когда парадигма «Делай одно» становится вредной?

Хотите улучшить этот пост? Предоставьте подробные ответы на этот вопрос, включая цитаты и объяснение того, почему ваш ответ правильный. Ответы без достаточной детализации могут быть отредактированы или удалены. Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в...

20
Может / должен ли Принцип единой ответственности применяться к новому коду?

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

19
В чем разница между принципом единой ответственности и разделением интересов

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

19
Является ли регистрация рядом с реализацией нарушением SRP?

Размышляя о гибкой разработке программного обеспечения и всех принципах (SRP, OCP, ...), я спрашиваю себя, как относиться к ведению журнала. Является ли регистрация рядом с реализацией нарушением SRP? Я бы сказал, yesпотому что реализация должна быть в состоянии работать без регистрации. Итак, как...

18
Нарушает ли множественное наследование принцип единой ответственности?

Если у вас есть класс, который наследует от двух разных классов, не означает ли это, что ваш подкласс автоматически делает (как минимум) 2 вещи, по одной от каждого суперкласса? Я считаю, что нет разницы, если у вас есть несколько интерфейсов наследования. Изменить: Чтобы было ясно, я считаю, что...

17
Является ли СРП (принцип единой ответственности) объективным?

Рассмотрим двух дизайнеров пользовательского интерфейса, которые хотят создавать привлекательные для пользователя дизайны. «Привлечение пользователей» - это концепция, которая не является объективной и находится только в сознании дизайнеров. Таким образом, дизайнер А может, например, выбрать...

17
Применим ли принцип единой ответственности к функциям?

По словам Роберта К. Мартина, SRP заявляет, что: Никогда не должно быть более одной причины для изменения класса . Однако в своей книге « Чистый код» , глава 3: Функции, он показывает следующий блок кода: public Money calculatePay(Employee e) throws InvalidEmployeeType { switch (e.type) { case...

16
MVC: Контролер нарушает принцип единой ответственности?

Принцип Единой Ответственности гласит, что «класс должен иметь одну причину изменения». В паттерне MVC работа Контроллера заключается в том, чтобы быть посредником между представлением и моделью. Он предлагает интерфейс для представления отчетов о действиях, выполненных пользователем в графическом...