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

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

6
Боротьба з єдиним принципом відповідальності
Розглянемо цей приклад: У мене є веб-сайт. Це дозволяє користувачам робити публікації (можуть бути будь-якими) та додавати теги, що описують публікацію. У коді я маю два класи, які представляють пост та теги. Давайте можемо називати ці класи Postта Tag. Postпіклується про створення публікацій, видалення публікацій, оновлення дописів тощо. Tagдбає про …

6
Які практичні способи реалізації СРП?
Просто якими практичними прийомами користуються люди, щоб перевірити, чи порушує клас єдиний принцип відповідальності? Я знаю, що у класу повинна бути лише одна причина для зміни, але в цьому реченні дещо не вистачає практичного способу реально реалізувати це. Єдиний спосіб, який я знайшов, - це використовувати речення "The ......... повинен …

4
Які основні обов'язки в об'єктно-орієнтованому програмуванні?
Я новачок в об'єктно-орієнтованому програмуванні і не розумію, яка мета головного. Так, я читав, що це "точка входу" програми, але те, що я не розумію, це те, що повинно бути головним? А які його обов'язки? Може статися, що щось написане в основному може бути інкапсульовано в інший об’єкт, але наскільки …

3
Як керувати єдиною відповідальністю, коли відповідальність поділяється?
У мене базові два класи, Operationі Trigger. У кожному є ряд підкласів, які спеціалізуються на певних типах операцій або тригерів. A Triggerможе викликати конкретний Operation. У той час як Operationможе бути ініційований певним Trigger. Мені потрібно написати код, який відображає задану Operationданість Trigger(або навпаки), але я не знаю, куди її …

2
Коли слідкуйте за SRP, як я маю поводитися з підтвердженням та збереженням об'єктів?
Останнім часом я читав чистий код та різні статті в Інтернеті про SOLID, і чим більше я читаю про нього, тим більше відчуваю, що нічого не знаю. Скажімо, я будую веб-додаток за допомогою ASP.NET MVC 3. Скажімо, у мене є UsersControllerтака Createдія: public class UsersController : Controller { public ActionResult …

2
Однозначна відповідальність та користувацькі типи даних
Протягом останніх місяців я просив, щоб люди, які перебувають тут, на SE та інших сайтах, пропонували мені конструктивну критику щодо мого коду. Є одне, що постійно вискакує майже кожен раз, і я все ще не згоден з цією рекомендацією; : P Я хотів би це обговорити тут, і, можливо, мені …

7
Я роблю свої заняття занадто детальними? Як слід застосовувати Принцип єдиної відповідальності?
Я пишу багато коду, який включає три основні етапи. Отримайте дані звідкись. Перетворіть ці дані. Покладіть ці дані кудись. Як правило, я використовую три типи занять - надихнувшись їх відповідними моделями дизайну. Фабрики - для побудови об'єкта з якогось ресурсу. Посередники - користуватися фабрикою, виконувати перетворення, потім використовувати командира. Командири …

3
Чи погана практика для визначення об’єкта API містити сторонні посилання Id як властивості?
Подобається це: Campaign: type: object properties: id: type: string description: "A GUID identifier" referenceId: type: string description: "A consumers identifier they have used to map their own systems logic to this object." name: type: string description: "'Great Campaign 2017' as an example" Я стурбований посиланнямId . Домен системи - це …

2
Стандартні практики контролю доступу (модель дизайну)
Я дивлюся на свій дизайн інтерфейсу, і я намагаюся вирішити, який є найбільш "правильним" способом здійснення управління доступом на основі ролі, з огляду на userта, subjectякі userхотіли б отримати. Наскільки я бачу, у мене є три основні варіанти (четвертий - бастардизація першої трійки, а п'ятий - твіст четвертого): Запитуйте subjectсписок …

2
Чи існує принцип інтерфейсу "запитувати лише те, що вам потрібно"?
Я перетворився на використання принципу для проектування та споживання інтерфейсів, який в основному говорить, "вимагайте лише того, що вам потрібно". Наприклад, якщо у мене є купа типів, які можна видалити, я зроблю Deletableінтерфейс: interface Deletable { void delete(); } Тоді я можу написати загальний клас: class Deleter<T extends Deletable> { …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.