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

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

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

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

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

5
Является ли СРП (принцип единой ответственности) объективным?
Рассмотрим двух дизайнеров пользовательского интерфейса, которые хотят создавать привлекательные для пользователя дизайны. «Привлечение пользователей» - это концепция, которая не является объективной и находится только в сознании дизайнеров. Таким образом, дизайнер А может, например, выбрать красный цвет, а дизайнер Б - синий. Дизайнер A создает макет, который полностью отличается от дизайнера …

5
MVC: Контролер нарушает принцип единой ответственности?
Принцип Единой Ответственности гласит, что «класс должен иметь одну причину изменения». В паттерне MVC работа Контроллера заключается в том, чтобы быть посредником между представлением и моделью. Он предлагает интерфейс для представления отчетов о действиях, выполненных пользователем в графическом интерфейсе (например, позволяя представлению вызывать controller.specificButtonPressed()), и способен вызывать соответствующие методы в …

7
Должен ли я рефакторинг больших функций, которые в основном состоят из одного регулярного выражения? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Я только что написал функцию, которая занимает примерно 100 строк. Услышав это, вы, …

4
Насколько конкретным должен быть шаблон единой ответственности для классов?
Например, предположим, что у вас есть консольная игровая программа, которая имеет все виды методов ввода / вывода в консоль и из консоли. Будет ли это быть умным , чтобы держать их все в одном inputOutputклассе или разбить их на более конкретных классы , как startMenuIO, inGameIO, playerIO, gameBoardIOи т.д. , …

4
Большой класс с единственной ответственностью
У меня есть Characterкласс 2500 строк, который: Отслеживает внутреннее состояние персонажа в игре. Загружает и сохраняет это состояние. Обрабатывает ~ 30 входящих команд (обычно = перенаправляет их на Game, но некоторые команды только для чтения отвечают немедленно). Получает ~ 80 звонков Gameо действиях, которые он предпринимает, и о действиях других. …

4
Следуют ли SOLID чтению и записи файлов две разные обязанности?
Я только начинаю изучать SOLID, и я не уверен, что чтение из файлов и запись в файлы являются одной и той же ответственностью. Цель имеет тот же тип файла; Я хочу читать и писать .pdf в моем приложении. Приложение на Python, если это имеет какое-либо значение.

5
Является ли субъект домена нарушением принципа единой ответственности?
Единственная ответственность (причина изменения) организации должна заключаться в том, чтобы однозначно идентифицировать себя, иными словами, ее ответственность должна быть обнаруживаемой. DDD книга Эрика Эвана, стр. 93: основная ответственность Сущностей заключается в установлении преемственности, с тем чтобы поведение могло быть четким и предсказуемым. Они делают это лучше всего, если их держать …

3
Работа через принцип единой ответственности (SRP) в Python, когда звонки стоят дорого
Некоторые базовые точки: Вызовы методов Python «дороги» из-за их интерпретируемой природы . Теоретически, если ваш код достаточно прост, разбивка кода Python оказывает негативное влияние, помимо читабельности и повторного использования ( что является большим преимуществом для разработчиков, а не для пользователей ). Принцип единой ответственности (SRP) делает код читаемым, его проще …

5
Полезно ли мини-рефакторинг кода в надежде улучшить качество, или это просто «перемещение кода» без особой выгоды?
пример Я натолкнулся на монолитный код, который делает «все» в одном месте - загружает данные из базы данных, показывает разметку HTML, действует как маршрутизатор / контроллер / действие. Я начал применять SRP, перемещая код базы данных в собственный файл, обеспечивая лучшее именование вещей, и все это выглядело хорошо, но потом …

5
Как избежать нарушения SRP в классе для управления кэшированием?
Примечание. Пример кода написан на c #, но это не должно иметь значения. Я поставил c # в качестве тега, потому что не могу найти более подходящий. Это о структуре кода. Я читаю Чистый код и пытаюсь стать лучшим программистом. Я часто сталкиваюсь с трудностями следования принципу единой ответственности (классы …

3
IValidatableObject vs Single Responsibility
Мне нравится точка расширяемости MVC, позволяющая представлениям моделей реализовывать IValidatableObject и добавлять настраиваемую проверку. Я стараюсь поддерживать свои контроллеры стройными, используя этот код в качестве единственной логики проверки: if (!ModelState.IsValid) return View(loginViewModel); Например, модель представления входа в систему реализует IValidatableObject, получает объект ILoginValidator посредством внедрения конструктора: public interface ILoginValidator { …

5
Повторение кода против многоответственного метода
Я стараюсь следовать принципу единой ответственности (SRP), а также опускать повторения кода. Однако часто есть места, где есть повторения кода, которые являются не чем иным, как кодовыми блоками вызовов, которые устойчивы к извлечению их в по крайней мере значащий именованный метод: DoAction1(); DoAction2(); if (value) DoAction3(); DoAction4(); Каков наилучший способ …

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