Запитання з тегом «solid»

Мнемоніка для набору принципів проектування: Одинична відповідальність, відкрите-закрите, підміна Ліскова, розділення інтерфейсу, інверсія залежності

16
Використовуючи Принцип єдиної відповідальності, що являє собою "відповідальність?"
Здається, досить зрозуміло, що "Принцип єдиної відповідальності" не означає "лише одне". Ось для чого методи. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Боб Мартін каже, що "заняття повинні мати лише одну причину для зміни". Але це …

6
Тверді принципи та структура коду
На недавньому співбесіді з роботою я не зміг відповісти на запитання про SOLID - окрім того, щоб надати основне значення різних принципів. Це мене справді клопоче. Я зробив копання за кілька днів і ще не придумав задовільного резюме. Питання для інтерв'ю: Якби ви подивилися на проект .Net, який я вам …
150 c#  .net  solid 

10
Це порушення принципу заміни Ліскова?
Скажімо, у нас є список суб'єктів Завдання та ProjectTaskпідтип. Завдання можуть бути закриті в будь-який час, за винятком випадків, ProjectTasksколи вони не можуть бути закриті, коли вони мають статус Почато. Користувальницький інтерфейс повинен гарантувати, що можливість закрити розпочатий доступ ProjectTaskніколи не доступна, однак у домені є деякі гарантії: public class …

12
Чому наслідування Square з прямокутника буде проблематичним, якщо ми перекриємо методи SetWidth та SetHeight?
Якщо квадрат - це тип прямокутника, то чому квадрат не може успадкувати прямокутник? Або чому це поганий дизайн? Я чув, як люди кажуть: Якщо ви зробили квадратний похід від прямокутника, то квадрат повинен бути корисним у будь-якому місці, де ви очікуєте прямокутник У чому тут проблема? І чому площа може …

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

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

10
Чому "остаточне" ключове слово коли-небудь буде корисним?
Здається, у Java було повноваження оголошувати класи незмінними для віків, і тепер у C ++ також є. Однак, з огляду на принцип "Відкрити / закрити" в SOLID, чому це було б корисно? Для мене finalключове слово звучить так само friend- воно легальне, але якщо ви його використовуєте, швидше за все, …
54 java  c++  solid  final 

5
Які принципи дизайну просувають тестуваний код? (розробка тестового коду проти водіння дизайну за допомогою тестів)
Більшість проектів, над якими я працюю, розглядають розробку та тестування одиниці окремо, що робить написання одиничних тестів на пізньому випадку кошмаром. Моя мета - мати на увазі тестування під час самих фаз проектування високого та низького рівня. Я хочу знати, чи існують якісь чітко визначені принципи дизайну, які сприяють пробному …

5
Контейнери МОК порушують принципи ООП
Яке призначення контейнерів МОК? Сукупні причини цього можуть бути спрощені до наступних: При використанні принципів розвитку OOP / SOLID розробка вприскування стає безладним. Або у вас є точки входу верхнього рівня, що управляють залежностями для декількох рівнів нижче самих себе і передають залежності рекурсивно через побудову, або у вас є …

7
Керування та організація масово збільшеної кількості занять після переходу на SOLID?
Протягом останніх декількох років ми поступово переходимо до прогресивно вдосконаленого письмового коду, кілька кроків дитини одночасно. Ми нарешті починаємо переходити на щось, що принаймні нагадує СОЛІД, але ми ще не зовсім там. З моменту переходу, одна з найбільших скарг розробників полягає в тому, що вони не витримують експертного огляду та …

8
LSP проти OCP / Liskov Заміна VS Open Close
Я намагаюся зрозуміти тверді принципи ООП і дійшов висновку, що LSP і OCP мають деякі подібності (якщо не сказати більше). принцип відкритого / закритого типу визначає, що "програмні об'єкти (класи, модулі, функції тощо) повинні бути відкритими для розширення, але закритими для модифікації". LSP простими словами зазначає, що будь-який примірник Fooможе …

11
Чи називаються так званими "наскрізними проблемами" вагомим приводом зламати SOLID / DI / IoC?
Мої колеги люблять говорити, що "ведення журналів / кешування / тощо. Є суперечливою проблемою", а потім продовжують використовувати відповідний сингл. І все ж вони люблять IoC та DI. Це справді вагомий привід зламати принцип SOLI D ?

7
Коли НЕ застосовувати принцип інверсії залежності?
На даний момент я намагаюся розібратися з твердим. Отже, Принцип інверсії залежності означає, що будь-які два класи повинні спілкуватися через інтерфейси, а не безпосередньо. Приклад: Якщо class Aє метод, який очікує на вказівник на об’єкт типу class B, тоді цей метод повинен очікувати об'єкта типу abstract base class of B. …

7
Тверді принципи проти YAGNI
Коли принципи SOLID стають YAGNI? Як програмісти, ми постійно робимо компроміси між складністю, ремонтом, часом розробки тощо. Серед інших, два з найрозумніших рекомендацій щодо вибору - це, на мій погляд, принципи SOLID та YAGNI. Якщо вам це не потрібно; не будуйте його, а зберігайте його в чистоті. Наприклад, наприклад, коли …

3
Програмування твердих принципів
З часом я міг зрозуміти дві частини SOLID - "S" і "O". «О» - Я навчився принципу відкритого закритого типу за допомогою структури спадкування та стратегії. “S” - я засвоїв принцип єдиної відповідальності під час вивчення ORM (логіка стійкості забирається з об’єктів домену). Аналогічним чином, які найкращі регіони / завдання …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.