순환 종속성 원리
Acyclic dependencies principleADP(Acyclic Dependency principle)는 로버트 C가 정의한 소프트웨어 설계 원칙이다.마틴은 "패키지나 구성요소의 종속성 그래프에는 주기가 없어야 한다"[1]고 말했다.이것은 의존성이 지시된 순환 그래프를 형성한다는 것을 암시한다.
예
이 UML 패키지 다이어그램에서 패키지 A는 패키지 B와 C에 의존한다.패키지 B는 패키지 D에 의존하고, 패키지 C에 의존하며, 패키지 B에 의존한다.후자의 세 가지 의존성은 순환을 생성하는데, 순환 종속성 원칙을 고수하기 위해서는 이 순환이 깨져야 한다.[2]
종속성의 유형
소프트웨어 의존성은 명시적이거나 암묵적일 수 있다.명시적 의존성의 예는 다음을 포함한다.
- 다음과 같은 문구를 포함하십시오.
#include
C/C++로,using
C#에 그리고import
자바어로 - 빌드 시스템에 명시된 종속성(예:
dependency
Maven 구성의 태그).
암묵적 종속성의 예는 다음과 같다.[3]
일반적으로, 가능할 때마다 명시적인 의존성을 선호하는 것은 좋은 관행으로 여겨진다.명시적 종속성이 암묵적 종속성보다 지도와 분석이 더 쉽기 때문이다.
사이클 브레이킹 전략
일반적으로 순환 종속 사슬을 끊는 것은 항상 가능하다.가장 일반적인 두 가지 전략은 다음과 같다.[1]
- 종속성 뒤집기 원리
- 새 패키지를 생성하고 공통 종속성을 이동하십시오.
참고 항목
참조
- ^ a b "Granularity: Acyclic dependencies principle (ADP)" (PDF). Object Mentor. Retrieved 2013-06-14.
- ^ Fowler, Martin (2004). UML Distilled.
- ^ "Implicit Dependencies Are also Dependencies". O'Reilly. Archived from the original on 2013-05-25. Retrieved 2013-06-16.