순환 종속성 원리

Acyclic dependencies principle

ADP(Acyclic Dependency principle)는 로버트 C가 정의한 소프트웨어 설계 원칙이다.마틴은 "패키지나 구성요소의 종속성 그래프에는 주기가 없어야 한다"[1]고 말했다.이것은 의존성이 지시된 순환 그래프를 형성한다는 것을 암시한다.

순환 종속성 예제

이 UML 패키지 다이어그램에서 패키지 A는 패키지 BC에 의존한다.패키지 B는 패키지 D에 의존하고, 패키지 C에 의존하며, 패키지 B에 의존한다.후자의 세 가지 의존성은 순환을 생성하는데, 순환 종속성 원칙을 고수하기 위해서는 이 순환이 깨져야 한다.[2]

종속성의 유형

소프트웨어 의존성은 명시적이거나 암묵적일 수 있다.명시적 의존성의 예는 다음을 포함한다.

  • 다음과 같은 문구를 포함하십시오.#includeC/C++로,usingC#에 그리고import자바어로
  • 빌드 시스템에 명시된 종속성(예:dependencyMaven 구성의 태그).

암묵적 종속성의 예는 다음과 같다.[3]

일반적으로, 가능할 때마다 명시적인 의존성을 선호하는 것은 좋은 관행으로 여겨진다.명시적 종속성이 암묵적 종속성보다 지도와 분석이 더 쉽기 때문이다.

사이클 브레이킹 전략

일반적으로 순환 종속 사슬을 끊는 것은 항상 가능하다.가장 일반적인 두 가지 전략은 다음과 같다.[1]

참고 항목

참조

  1. ^ a b "Granularity: Acyclic dependencies principle (ADP)" (PDF). Object Mentor. Retrieved 2013-06-14.
  2. ^ Fowler, Martin (2004). UML Distilled.
  3. ^ "Implicit Dependencies Are also Dependencies". O'Reilly. Archived from the original on 2013-05-25. Retrieved 2013-06-16.