Описание тега solid-principles

SOLID - это аббревиатура от пяти принципов объектно-ориентированного проектирования, представленных или задокументированных Робертом К. Мартином. Используйте этот тег для вопросов, касающихся любого из отдельных принципов или их взаимосвязи с другими концепциями OOD. Также используйте пять отдельных тегов, если применимо.
1 ответ

Противоположность принципа разделения интерфейса

Сегодня в одном из интервью меня спросили, что такое принцип сегрегации интерфейса и что противоположно этому случаю или принципу. ISP для меня понятен, но я не знаю вторую часть вопроса, каков принцип, противоположный ISP?
8 ответов

Примеры отличного проектирования и реализации программного обеспечения

Я надеюсь, что это не дубликат... Какова самая продуманная и реализованная программная система / фреймворк / приложение, которое вы встречали? Кажется, что TDD, принципы SOLID, шаблоны проектирования ОО и тому подобное можно легко теоретизировать на…
1 ответ

ТВЕРДЫЕ ПРИНЦИПЫ. Как не замять все на более высоком уровне класса?

Я только что закончил Java-приложение, используя в основном классы Utility, а затем в выходные прочитал о принципах SOLID, поэтому я реорганизую все приложение, следуя этому принципу. Есть одна проблема, с которой я столкнулся при испытании, поэтому…
17 фев '16 в 15:05
2 ответа

Создать экземпляр в классе или получить объект извне, что на true?

Я изучил принцип SOLID и создал для меня вопрос об этом. Вы полагаете, что нам нужен Tea Объект в Mug класс, теперь это лучше, чем создать экземпляр из Tea в Mug класс или пройти снаружи через Constructor или же setter метод. что это правда? пример:…
11 май '18 в 16:50
3 ответа

Это нарушает принципы SOLID?

У меня есть что-то вроде этого в моем проекте, проект, который вроде как уже закончен (он работает), я просто хочу знать, в порядке ли это с принципами SOLID static public class Tools { static public GetProduct(this id){...} static public GetProduct…
17 сен '09 в 07:48
2 ответа

Как правильно выставлять API, обрабатывать зависимости DLL и придерживаться SOLID?

Каков наилучший подход для предоставления API моей распространяемой библиотеки DLL и обработки ее зависимостей, учитывая, что эти зависимости должны обрабатываться не клиентами, а самой библиотекой DLL, в то же время в соответствии с SOLID и другими…
1 ответ

SOLID: вызов конструктора того же класса разрешен?

Важным свойством действительно твердого кода является тот факт, что вызовы конструктора не часто происходят в реальном коде приложения, но в первую очередь в корневых и фабричных методах компоновки, где это необходимо. Это имеет большой смысл для ме…
13 июн '12 в 21:28
1 ответ

Android - Отделите асинхронный http-код от действия в соответствии с принципами SOLID.

Я хочу отделить асинхронный http-код от действий, поскольку я повторно использую код. Вот чем я сейчас занимаюсь: Я хочу получить список проектов из REST API и сохранить его в массиве. (Предположим, я не использую локальное кэширование, так как хочу…
0 ответов

Шаблон FactoryMethod на Ruby

Я изучаю шаблоны проектирования. Как вы думаете, это подходящий пример шаблона FactoryMethod? Есть Подразделение и его подклассы: Солдат и Доктор. Они могут как-то приветствовать. Есть также UnitFactory, SoldierFactory и DoctorFactory. Они производя…
17 апр '17 в 19:59
4 ответа

Соответствует ли шаблон репозитория принципам SOLID?

Я занимаюсь исследованием принципала SOLID и обнаружил некоторые проблемы в реализации шаблона репозитория. Я собираюсь объяснить каждую проблему, пожалуйста, исправьте меня, если я ошибаюсь. Проблема 1 Разрывы репозитория Принцип единой ответственн…
1 ответ

Получить данные из разных API

Я разрабатываю API, которые получают данные из других API (Facebook, Google...). Моя идея состоит в том, чтобы создавать разные репозитории для каждого API. Например: Interface ReaderRepositoryInterface { getEvents (); getComents () } class Facebook…
20 сен '17 в 21:29
1 ответ

Фабрика создает объекты, которые нуждаются в других объектах

Мне нужен фабричный объект, способный создавать несколько объектов, но вводить в них другие объекты. Например: class MyFactory { public function createObjectA() { return new ObjectA(new ObjectANeededObject1(), new ObjectANeededObject1()); } public f…
1 ответ

Соблюдение принципа единой ответственности на уровне метода

В контексте отправки электронной почты, это нормально, если запросить внешнюю информацию внутри метода или значение должно быть передано, как во втором примере. 1. void sendEmail(int companyId) { String companyName = this.selectCompanyName(companyId…
26 мар '17 в 16:42
0 ответов

Создание хранилищ массивов в Laravel

В настоящее время в нашем приложении есть репозитории, которые имеют интерфейсы. На самом деле существует множество реализаций этих интерфейсов репозитория. например Database, Elasticsearch, Api в качестве источника данных. Это здорово, так как мы м…
1 ответ

Почему на одном контроллере введено хранилище, а на другом - служба

Я читаю книгу М. Зеемана "Внедрение зависимостей в.NET", глава 2. Исходный код доступен здесь: http://www.manning.com/seemann/ В решении ComplexCommerce, CommerceWebPresentationModel, HomeController у нас есть хранилище, переданное в конструктор: pu…
1 ответ

Как соблюдать принцип единой ответственности в этой ситуации, используя Java?

Давайте предположим, что у меня есть три канала (это просто концепция, а не класс): A, B, C, Каждый канал имеет несколько объектов, которые я хочу обработать, и которые отличаются между ними. Давайте предложим: канал A имеет A1, A2 а также A3, канал…
26 мар '18 в 08:16
0 ответов

Если операторы Switch нарушают принципы SOLID, как утверждает дядя Боб (в "Чистом коде"), должен ли я их вообще использовать с языками OO?

В " Чистом коде" дядя Боб утверждает, что операторы switch почти всегда нарушают принципы единой ответственности и открытости / закрытости. Значит ли это, что я должен редко (единственный случай, который он предлагает, - это когда переключатель скры…
1 ответ

ТВЕРДЫЕ принципы при создании объектов

Вот сценарий: Пользователь может создавать формы, используя форму. Пользователь выберет из списка параметров формы (круг, квадрат, прямоугольник и т. Д.) И отправит форму, нажав кнопку "Создать форму". Форма, которую он создал, будет связана с его а…
22 апр '16 в 18:25
1 ответ

Rails, SRP и юнит-тесты

преамбула Я впервые пытаюсь создать приложение с учетом требований SRP и действительно пытаюсь использовать тесты для управления кодом сайта, вместо того чтобы начинать с моей архитектуры данных (ActiveRecord), а затем собирать приложение, чтобы оно…
3 ответа

Несколько конфигураций для одного класса

В последние дни я пытаюсь понять, как я могу изменить свой код, чтобы следовать SOLID принципы. Но с этим примером я не могу найти правильный способ справиться. Продукт имеет Name и BarCode: public partial class Product { public string Name { get; s…
08 окт '18 в 11:53