Запитання з тегом «single-responsibility»

Принцип єдиної відповідальності зазначає, що кожен модуль в системі повинен відповідати за одну особливість або функціональність або за агрегацію згуртованих функцій. Ще один поширений спосіб сказати, що кожен модуль повинен мати лише одну причину для зміни.

6
Чи реєстрація поруч із впровадженням є порушенням SRP?
Думаючи про гнучку розробку програмного забезпечення та всі принципи (SRP, OCP, ...), я запитую себе, як ставитись до ведення журналів. Чи реєстрація поруч із впровадженням є порушенням SRP? Я б сказав, yesтому що реалізація також має бути спроможна запускатись без реєстрації. Тож як я можу краще реалізувати ведення журналу? Я …

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

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

5
Є об'єктивним принципом єдиної відповідальності?
Розглянемо двох дизайнерів інтерфейсу, які хочуть створити «привабливі для користувача» конструкції. "Привабливість користувача" - це поняття, яке не є об'єктивним і є лише у свідомості дизайнерів. Таким чином, дизайнер A міг, наприклад, підібрати червоний колір, а дизайнер B - синій. Дизайнер A створить макет, який повністю відрізняється від дизайнера B …

5
MVC: Чи регулятор порушує принцип єдиної відповідальності?
Принцип єдиної відповідальності зазначає, що "клас повинен мати одну причину зміни". У шаблоні MVC завданням контролера є посередництво між видом і моделлю. Він пропонує інтерфейс для представлення даних, щоб повідомляти про дії, здійснені користувачем на графічному інтерфейсі (наприклад, дозволити View зателефонувати controller.specificButtonPressed()), а також може викликати відповідні методи в моделі, …

7
Чи повинен я рефактор великих функцій, які в основному складаються з одного регулярного вираження? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 5 років тому . Я щойно написав функцію, яка охоплює приблизно 100 рядків. Почувши це, ви, мабуть, спокусилися …

4
Наскільки специфічним повинен бути шаблон єдиної відповідальності для занять?
Наприклад, припустимо, що у вас є консольна ігрова програма, яка має всі види методів введення / виводу на консоль і з них. Чи буде це бути розумним , щоб тримати їх все в одному inputOutputкласі або розбити їх на більш конкретних класи , як startMenuIO, inGameIO, playerIO, gameBoardIOі т.д. , …

5
Чи порушує суб'єкт домену єдиний принцип відповідальності?
Єдиною відповідальністю (підставою для зміни) суб'єкта господарювання повинно бути унікальна ідентифікація себе, іншими словами, його відповідальність полягає у фіналізації. Книга DDD Еріка Евана, стор. 93: Основна відповідальність суб'єктів господарювання полягає у встановленні наступності, щоб поведінка була чіткою та передбачуваною. Вони роблять це найкраще, якщо їх залишають запасними. Замість того, щоб …

4
Великий клас з єдиною відповідальністю
У мене Characterклас 2500 ліній, який: Відстежує внутрішній стан персонажа в грі. Навантажує та зберігає цю державу. Обробляє ~ 30 вхідних команд (як правило, = пересилає їх до Game, але на деякі команди лише для читання відповідають негайно). Отримує ~ 80 дзвінків Gameстосовно дій, які він вживає, та відповідних дій …

4
Чи дотримуйтесь SOLID, читання та запис файлів є двома окремими обов'язками?
Я тільки починаю досліджувати SOLID, і я не впевнений, читання з файлів і запис у файли несуть ту саму відповідальність. Цільовий тип одного типу; Я хочу читати і писати .pdf у своїй програмі. Додаток знаходиться в Python, якщо це має значення.

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.