Jump to content

Принцип ациклических зависимостей

Принцип ациклических зависимостей ( ADP ) — это принцип проектирования программного обеспечения, определенный Робертом К. Мартином, который гласит, что « граф зависимостей пакетов или компонентов не должен иметь циклов ». [1] Это означает, что зависимости образуют ориентированный ациклический граф .

Пример циклической зависимости

На этой диаграмме пакетов пакет A зависит от пакетов B и C. UML Пакет B, в свою очередь, зависит от пакета D , который зависит от пакета C зависит от пакета B. , который, в свою очередь , Последние три зависимости создают цикл, который необходимо разорвать, чтобы придерживаться принципа ациклических зависимостей. [2]

Типы зависимостей

[ редактировать ]

Программные зависимости могут быть явными или неявными.Примеры явных зависимостей включают в себя:

  • Включите такие утверждения, как #include на Си/С++, using на C# и import на Яве.
  • Зависимости, указанные в системе сборки (например, dependency теги в конфигурации Maven ).

Примеры неявных зависимостей включают в себя: [3]

В общем, считается хорошей практикой отдавать предпочтение явным зависимостям, когда это возможно. Это связано с тем, что явные зависимости легче отображать и анализировать, чем неявные.

Стратегии разрыва цикла

[ редактировать ]

В общем, всегда можно разорвать циклическую цепочку зависимостей. Две наиболее распространенные стратегии: [1]

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б «Детализация: принцип ациклических зависимостей (ADP)» (PDF) . Объект Наставник. Архивировано из оригинала 30 ноября 2015 г. Проверено 15 ноября 2022 г. {{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  2. ^ Фаулер, Мартин (2004). UML Дистиллированный .
  3. ^ «Неявные зависимости также являются зависимостями» . О'Рейли. Архивировано из оригинала 25 мая 2013 г. Проверено 16 июня 2013 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 22e76154ce526f5a169d7cecb9e023e3__1690874700
URL1:https://arc.ask3.ru/arc/aa/22/e3/22e76154ce526f5a169d7cecb9e023e3.html
Заголовок, (Title) документа по адресу, URL1:
Acyclic dependencies principle - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)