Вопросы с тегом «solid»

Мнемоника для набора принципов проектирования: единая ответственность, открытый-закрытый, подстановка Лискова, сегрегация интерфейса, инверсия зависимостей

8
Класс, который ничего не представляет - это правильно?
Я просто проектирую свое приложение, и я не уверен, правильно ли я понимаю SOLID и OOP. Классы должны делать одну вещь и делать это хорошо, но, с другой стороны, они должны представлять реальные объекты, с которыми мы работаем. В моем случае я выполняю извлечение признаков из набора данных, а затем …

8
Какова реальная ответственность класса?
Я продолжаю задаваться вопросом, является ли законным использование глаголов, основанных на существительных в ООП. Я наткнулся на эту блестящую статью , хотя я все еще не согласен с тем, что она делает. Чтобы объяснить проблему чуть подробнее, в статье говорится, что не должно быть, например, FileWriterкласса, но поскольку написание является …

5
Как инверсия зависимостей связана с функциями высшего порядка?
Сегодня я только что увидел эту статью, в которой описана актуальность принципа SOLID в разработке F #. F # и принципы дизайна - SOLID И, обращаясь к последнему - «Принцип инверсии зависимостей», автор сказал: С функциональной точки зрения эти контейнеры и концепции внедрения могут быть решены с помощью простой функции …

11
Убедитесь, что у каждого класса есть только одна ответственность, почему?
Согласно документации Microsoft, статье SOLID Wikipedia SOLID или большинству ИТ-архитекторов мы должны гарантировать, что каждый класс несет только одну ответственность. Я хотел бы знать почему, потому что, если все, кажется, согласны с этим правилом, никто не соглашается с причинами этого правила. Некоторые ссылаются на лучшее обслуживание, другие говорят, что оно …

2
Эквивалент принципов SOLID для функционального программирования
Я нашел принципы SOLID весьма полезными, когда размышляю над объектно-ориентированным дизайном. Существует ли подобный / эквивалентный набор не зависящих от языка принципов, адаптированных для функционального программирования?

5
Где вы должны положить константы и почему?
В наших в основном больших приложениях у нас обычно есть только несколько мест для «констант»: Один класс для графического интерфейса пользователя и внутренних констант (заголовки вкладок, заголовки групповых блоков, коэффициенты вычислений, перечисления) Один класс для таблиц и столбцов базы данных (эта часть является сгенерированным кодом) плюс читаемые имена для них …

6
Дополнительная строка в блоке против дополнительного параметра в чистом коде
контекст В Чистом коде , на странице 35, написано Это подразумевает, что блоки внутри операторов if, операторов else, операторов while и т. Д. Должны быть длиной в одну строку. Вероятно, эта строка должна быть вызовом функции. Это не только уменьшает объем включаемой функции, но также добавляет документальное значение, поскольку функция, …
33 clean-code  solid 

9
Разработка класса, который будет принимать целые классы в качестве параметров, а не отдельные свойства
Например, у вас есть приложение с широко используемым классом, которое называется User. Этот класс предоставляет всю информацию о пользователе, его идентификаторе, имени, уровнях доступа к каждому модулю, часовом поясе и т. Д. Очевидно, что пользовательские данные широко используются во всей системе, но по какой-то причине система настроена таким образом, чтобы …
30 java  c#  design  solid 

10
Сколько слишком много интерфейсов в классе? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Вероятно, я бы посчитал запахом кода или даже анти-паттерном иметь класс, реализующий 23 интерфейса. …

9
Что может пойти не так, если нарушится принцип подстановки Лискова?
Я следил за этим высоко оцененным вопросом о возможном нарушении принципа подстановки Лискова. Я знаю, что такое принцип подстановки Лискова, но мне все еще неясно, что может пойти не так, если я, как разработчик, не задумываюсь над этим принципом при написании объектно-ориентированного кода.

3
Статические классы со статическими методами считаются SOLID?
SOLID включает принцип подстановки Лискова, который имеет понятие, что «объекты в программе должны заменяться экземплярами их подтипов без изменения правильности этой программы». Поскольку статические классы со статическими методами (немного похожими на Mathкласс) вообще не имеют экземпляров, считается ли моя система SOLID, если у меня есть статические классы со статическими методами?

12
ТВЕРДЫЙ против избежания преждевременной абстракции
Я понимаю, что SOLID должен выполнять, и регулярно использую его в ситуациях, когда модульность важна и ее цели явно полезны. Однако две вещи мешают мне применять его последовательно в моей кодовой базе: Я хочу избежать преждевременной абстракции. По моему опыту, рисование линий абстракции без конкретных вариантов использования (типа, существующего сейчас …

8
Существуют ли варианты ООП, в которых некоторые или все принципы SOLID противоположны чистому коду?
Недавно у меня был разговор с моим другом об ООП в разработке видеоигр. Я объяснял архитектуру одной из моих игр, которая, к удивлению моего друга, содержала много небольших классов и несколько уровней абстракции. Я утверждал, что это было результатом того, что я сосредоточился на том, чтобы дать всем Единую Ответственность, …

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.