Вопросы с тегом «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 Принципы и структура кода
На недавнем собеседовании я не смог ответить на вопрос о SOLID - помимо предоставления основного значения различных принципов. Это действительно беспокоит меня. Я потратил пару дней на то, чтобы покопаться и еще не нашел удовлетворительного резюме. Вопрос интервью был: Если бы вы посмотрели на проект .Net, который, как я вам …
150 c#  .net  solid 

10
Это нарушение принципа подстановки Лискова?
Скажем, у нас есть список сущностей задач и ProjectTaskподтип. Задачи могут быть закрыты в любое время, кроме тех, ProjectTasksкоторые не могут быть закрыты, если они имеют статус Запущено. Пользовательский интерфейс должен гарантировать, что опция закрытия запуска ProjectTaskникогда не будет доступна, но в домене присутствуют некоторые меры безопасности: public class Task …

12
Почему квадратное наследование от Rectangle будет проблематичным, если мы переопределим методы SetWidth и SetHeight?
Если Квадрат является типом Прямоугольника, то почему Квадрат не может наследовать от Прямоугольника? Или почему это плохой дизайн? Я слышал, как люди говорят: Если вы сделали Square производным от Rectangle, то Square должен использоваться везде, где вы ожидаете прямоугольник В чем здесь проблема? И почему Square можно использовать везде, где …

4
Приводит ли SOLID к написанию фреймворка поверх стека технологий?
Мне нравится SOLID, и я стараюсь изо всех сил использовать и применять его при разработке. Но я не могу не чувствовать, что подход SOLID превращает ваш код в код «фреймворка» - то есть код, который вы разработали бы, если бы создавали фреймворк или библиотеку для использования другими разработчиками. Я обычно …
70 frameworks  solid 

8
Как класс может иметь несколько методов, не нарушая принцип единой ответственности
Принцип единой ответственности определяется в Википедии как Принцип единой ответственности - это принцип компьютерного программирования, который гласит, что каждый модуль, класс или функция должны нести ответственность за одну часть функциональности, предоставляемой программным обеспечением, и эта ответственность должна быть полностью заключена в класс Если у класса должна быть только одна ответственность, …

10
Почему ключевое слово 'final' будет полезным?
Кажется, что Java обладает способностью объявлять классы, которые не могут быть извлечены целую вечность, и теперь C ++ имеет это тоже. Однако, в свете принципа открытия / закрытия в SOLID, почему это было бы полезно? Для меня finalключевое слово звучит так же, как friendэто - это законно, но если вы …
54 java  c++  solid  final 

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

5
Контейнеры МОК нарушают принципы ООП
Какова цель контейнеров МОК? Объединенные причины этого могут быть упрощены до следующего: При использовании принципов разработки OOP / SOLID Dependency Injection становится беспорядочным. Либо у вас есть точки входа верхнего уровня, управляющие зависимостями для нескольких уровней ниже их самих и рекурсивно пропускающие зависимости через конструкцию, либо у вас есть несколько …

7
Управление и организация массово увеличенного количества классов после перехода на SOLID?
За последние несколько лет мы постепенно переходили на все более и более качественно написанный код, по несколько шагов за раз. Мы наконец начинаем переключаться на что-то, что, по крайней мере, напоминает SOLID, но мы еще не совсем там. После внесения изменений одна из самых больших претензий разработчиков заключается в том, …

8
LSP vs OCP / Замена Лискова VS Open Закрыть
Я пытаюсь понять твердые принципы ООП и пришел к выводу, что у LSP и OCP есть некоторые сходства (если не сказать больше). принцип открытого / закрытого состояния гласит, что «программные объекты (классы, модули, функции и т. д.) должны быть открыты для расширения, но закрыты для модификации». Проще говоря, LSP гласит, …

11
Являются ли так называемые «сквозные проблемы» действительным поводом для нарушения SOLID / DI / IoC?
Мои коллеги любят говорить «ведение журнала / кеширование и т. Д. - сквозная проблема», а затем везде использовать соответствующий синглтон. Все же они любят IoC и DI. Действительно ли это оправданное нарушение принципа SOLI D ?

7
Когда НЕ применять принцип инверсии зависимости?
В настоящее время я пытаюсь выяснить, ТВЕРДЫЙ. Таким образом, принцип обращения зависимостей означает, что любые два класса должны взаимодействовать через интерфейсы, а не напрямую. Пример: если class Aесть метод, который ожидает указатель на объект типа class B, то этот метод должен фактически ожидать объект типа abstract base class of B. …

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

3
Принципы программирования SOLID
Со временем я смог понять две части SOLID - «S» и «O». «O» - я выучил принцип Open Closed с помощью модели наследования и стратегии. «S» - я изучил принцип единой ответственности при изучении ORM (логика персистентности отбирается у объектов домена). Аналогичным образом, какие области / задачи лучше всего изучать …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.