Описание тега single-responsibility-principle

По вопросам о принципе единой ответственности в объектно-ориентированном программировании, одном из принципов SOLID, придуманных Робертом К. Мартином. В нем говорится, что у модуля должна быть только одна причина для изменения.
10 ответов

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

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

Принцип единой ответственности (SRP) и мой класс обслуживания

Я имею YoutubeVideoService класс, который выполняет операции CRUD(создание, чтение, обновление и удаление). На мой взгляд, Create, Read, Update и Delete являются четырьмя причинами для изменения класса. Этот класс нарушает принцип единой ответственн…
0 ответов

Не нарушает ли внедрение зависимостей умными указателями принцип единой ответственности?

Меня беспокоит то, что при использовании любого shared_ptr или же unique_ptr Я придерживаюсь одной модели собственности - либо введенные объекты являются общими, либо мои собственные. И я думаю, что это вторичный класс ответственности - заботиться о…
1 ответ

Как скрыть логику за классом, чтобы улучшить читаемость метода и класса рефакторинга, чтобы следовать SRP?

У меня есть алгоритм для создания версии для объекта, а затем я сохраняю эту версию для объекта ниже 2: 1) Вариант 2) Категория interface IEntityVersion { string GetVersion(); } public class EntityVersion : IEntityVersion { public string GetVersion(…
1 ответ

Принцип единой ответственности для классов Дао

Это пример кода, который не следовал принципу единой ответственности, public class EmailSender { public void SendEmail(string customerID, string emailNotificationType) { //STEP1: load customer details //STEP2: get email content //STEP3: send email (…
0 ответов

Можно ли использовать Upsert для метода контроллера или следует разделить на Update и Insert?

Недавно я завершил онлайн-руководство, в котором инструктор объединил свои вызовы Update и Insert в один метод Upsert: [HttpGet] public IActionResult Upsert(int? id) { SelectListViewModel<Attraction> attraction = new SelectListViewModel<Att…
2 ответа

Есть ли какая-либо стратегия разделения ответственности для применения SRP?

Есть ли какая-либо стратегия разделения классов для применения принципа единой ответственности? В команде среднего размера мы разрабатываем переносное приложение-менеджер, которое может подключаться к различным типам носимых устройств, скажем, Weara…
0 ответов

Как заставить принцип единой ответственности работать с моим классом стратегии?

Как мне заставить мой "сложный" класс стратегии выполнять принцип единой ответственности? Есть ли другой шаблон, который я могу применить вместо этого? Я думал о шаблоне Decorator, который может добавить больше ответственности / операций к моему "ал…
1 ответ

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

Я пытаюсь написать код, чтобы сделать простую игру. Предполагая, что существует класс с именем Level, в котором он управляет функциями уровня. Например, в классе есть такие методы, как spawnHero() и spawnEnemies(), start(), finish() и т. Д. если я и…
10 ноя '19 в 19:28
0 ответов

Как обновить зависимое состояние редукции

Я стараюсь максимально следовать принципу единой ответственности в своем коде. Скажем, у меня есть два компонента, один из нихCompanyComponent и каждый Companyимеет отдельный чат и контакт. Я пытаюсь разработать свой код таким образом, чтобы: Если C…
0 ответов

Принцип единой ответственности с JetPack Compose - есть ли справочное руководство?

Поскольку Jetpack Compose следует принципу единой ответственности, мне интересно, где я могу получить отображение всех функций в "обязанности", так сказать. В качестве примера, как я мог самостоятельно выяснить, что функция Surface отвечает за цвет …
1 ответ

Это нарушение принципа единой ответственности (SRP)

Сделайте методы getSummary а также getMovementType нарушают SRP, поскольку знают слишком много (Context)? Эти методы используются вRecyclerView.Adapter. abstract class Movement( val movementId: Int = 0, val created: Date = Date(), val createdBy: Str…
2 ответа

Чистая архитектура на 2 фрагмента, которые похожи по функциям с MVVM?

Я работаю над приложением для Android в Kotlin, в котором есть профили пользователей, и изо всех сил стараюсь кодировать как можно более чисто, используя MVVM. Работая над частью, отвечающей за обновление профиля пользователя, я заметил, что модель …
1 ответ

Рефакторизация программы по принципу единой ответственности - SOLID- SRP

Я изучаю SOLID и пытаюсь понять принцип единой ответственности. Класс WalkingData хранит "дату" и "пройденное расстояние". Класс также читает сохраненные данные. public class WalkingData { public DateTime Date { get; set; } public int WalkedDistance…
2 ответа

Как должны взаимодействовать компоненты в многопоточном Android-приложении?

Я хочу создать простое приложение для Android, которое должно выполнять тяжелую работу в фоновом режиме. Я новичок в разработке Android и мне нужен совет, как правильно разработать это приложение. Итак, мое приложение должно запускать сервер в фонов…
1 ответ

Шаблоны проектирования: следует ли перемещать повторяющиеся вызовы функций в разные модули в их собственную "абстракцию"?

Как разработчик JS я часто сталкиваюсь с проблемой, нужно ли переносить определенные "процедуры" на свой собственный уровень. Например: const localStorageUser = jwtService.userExistsInStorage();//Returns a user object if available if (localStorageUs…
1 ответ

принцип единой ответственности и читаемость кода

Пытаясь придерживаться правила единой ответственности, мои классы начали выглядеть так: $productImage = new ProductImage(// holds all rules for product image only new ImageFile( // makes sure given file is an image file new ReadableFile( // checks g…
1 ответ

Есть ли способ обновить столбцы в других объектах после обновления ссылочного объекта?

Это объект проекта, который используется в качестве ссылки другими объектами в моем проекте: @Entity @Data @RequiredArgsConstructor @AllArgsConstructor public class Project { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long id; @…
0 ответов

Почему здесь плохо иметь слишком много аргументов при внедрении конструктора?

У меня есть контроллер, который заботится о первом путешествии пользователя на моем веб-сайте (игнорируйте имена нижеприведенных зависимостей, они случайны) @RestController class Controller( private val fooComponent: FooComponent, private val dataCo…
1 ответ

Принцип единой ответственности для многих методов

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