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

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

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

8
Яка реальна відповідальність класу?
Мені цікаво, чи законним є використання дієслів, заснованих на іменниках в ООП. Я зіткнувся з цією блискучою статтею , хоча я все ще не згоден з моментом, який вона висуває. Щоб пояснити проблему трохи більше, у статті зазначено, що FileWriterкласу не повинно бути, наприклад , але написання є дією, це …

5
Як інверсія залежності пов'язана з функціями вищого порядку?
Сьогодні я щойно бачив цю статтю, в якій описано актуальність принципу SOLID у розробці F # F # та принципи дизайну - SOLID І звертаючись до останнього - "Принцип інверсії залежності", автор сказав: З функціональної точки зору ці поняття щодо контейнерів та ін'єкцій можна вирішити за допомогою простої функції вищого …

11
Переконайтесь, що кожен клас несе лише одну відповідальність, чому?
Відповідно до документації Microsoft, статті статті Wikipedia SOLID або більшості ІТ-архітекторів, ми повинні гарантувати, що кожен клас несе лише одну відповідальність. Мені хотілося б знати, чому, якщо всі, здається, згодні з цим правилом, схоже, ніхто не погоджується з причинами цього правила. Деякі кажуть, що це краще обслуговування, деякі кажуть, що …

2
Еквівалент принципів SOLID для функціонального програмування
Я вважав принципи SOLID досить корисними, коли думав про об'єктно-орієнтований дизайн. Чи існує подібний / еквівалентний набір мовно-агностичних принципів, розроблених для функціонального програмування?

5
Куди слід ставити константи і чому?
У наших переважно великих програмах ми зазвичай маємо лише кілька місць для "констант": Один клас для графічного інтерфейсу та внутрішніх константів (заголовки сторінки вкладок, заголовки групи, обчислювальні фактори, перерахування) Один клас для таблиць та стовпців бази даних (ця частина генерується кодом) плюс читабельні назви для них (призначається вручну) Один клас …

6
Додатковий рядок у блоці та додатковий параметр у чистому коді
Контекст У Чистому коді на сторінці 35 написано Це означає, що блоки, якщо оператори, оператори else, в той час як оператори тощо, повинні бути довгими на один рядок. Можливо, ця лінія повинна бути викликом функції. Це не тільки робить функцію, що вкладається, невеликою, але й додає документальну цінність, оскільки функція, …
33 clean-code  solid 

9
Проектування класу для прийняття цілих класів як параметрів, а не окремих властивостей
Скажімо, наприклад, у вас є додаток із широко поширеним класом, який називається User. Цей клас розкриває всю інформацію про користувача, його Id, ім'я, рівні доступу до кожного модуля, часовий пояс тощо. Дані користувача, очевидно, широко посилаються у всій системі, але з будь-якої причини система налаштована так, що замість того, щоб …
30 java  c#  design  solid 

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

9
Що може піти не так, якщо порушено принцип заміни Ліскова?
Я слідкував за цим високоголосним питанням щодо можливого порушення принципу заміни Ліскова. Я знаю, що таке принцип заміни Ліскова, але все ще не ясно в моєму розумінні, що може піти не так, якщо я як розробник не замислююся над принципом під час написання об'єктно-орієнтованого коду.

3
Чи вважаються статичні класи зі статичними методами SOLID?
SOLID включає принцип заміщення Ліскова, який має поняття, що "об'єкти в програмі повинні бути замінені екземплярами їх підтипів, не змінюючи правильність цієї програми". Оскільки статичні класи зі статичними методами (трохи схожі на Mathклас) взагалі не мають примірників, чи вважається моя система SOLID, якщо у мене є статичні класи зі статичними …

12
SOLID vs. Уникнення передчасної абстракції
Я розумію, що SOLID повинен виконувати і використовувати його регулярно в ситуаціях, коли модульність важлива і цілі її явно корисні. Однак дві речі заважають мені послідовно застосовувати його в моїй кодовій базі: Хочу уникнути передчасного абстрагування. З мого досвіду, малювання абстракційних ліній без конкретних випадків використання (таких, які існують зараз …

8
Чи є ароматизатори OOP, де деякі або всі принципи SOLID є антитетичними для чистого коду?
Нещодавно я обговорив з моїм другом про OOP у розробці відеоігор. Я пояснював архітектуру однієї з моїх ігор, яка, на подив мого друга, містила багато невеликих класів та кілька шарів абстракції. Я стверджував, що це був результат, коли я зосередився на наданні всього єдиної відповідальності, а також на послаблення зв'язку …

11
Виберіть зусилля з розробки коду чи лінь у світі банку
Я два роки працював у чудовому інвестиційному банку. Я зробив декілька технічних проектів з бажанням створити код максимально оптимізованим, дотримуючись адаптованих хороших моделей дизайну, принципу SOLID, закону деметера та уникаючи всіляких повторюваних кодів ... При доставці у виробництво => нуль помилок, все сталося так, як очікувалося. Але більшість розробників прийшли …

5
Чи порушують особливі випадки з запасною системою Принцип заміни Ліскова?
Скажімо, у мене є інтерфейс FooInterfaceіз таким підписом: interface FooInterface { public function doSomething(SomethingInterface something); } І конкретний клас, ConcreteFooякий реалізує цей інтерфейс: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Я хотів би ConcreteFoo::doSomething()зробити щось унікальне, якщо він передається спеціальному типу SomethingInterfaceоб'єкта (скажімо, він називається …

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