2010-07-09 5 views
0

하위 패키지는 a.b.c.d 패키지를 의미하며 상위 패키지는 a.b.c를 의미하며 서로 관련하여 용어를 사용했습니다. 그러한 수준을 정의하는 용어가 있는지 확실하지 않습니다. 그러나 객체 지향 관점에서 a.b.c.anotherClass.anotherMetod()에서 a.b.c.d.aClass.aMethod()를 호출하는 것이 좋은지 알고 싶습니다. 필자의 견해로는 a.b.c는 패키지 a.b.c.d를 인식하지 못하도록 설계되어야합니다. 왜냐하면 a.b.c.d는보다 구체적인 a.b.c 형식을 나타내거나 논리적으로는 아래에 a.b.c입니다.상위 패키지의 클래스에서 하위 패키지의 API를 사용하는 것이 좋은 생각입니까?

+0

나는 당신과 일치한다. –

답변

4

어떤 경우에도 패키지간에 종속성을 확인하는 것은 바람직하지 않습니다. 따라서 패키지 a.b.c에서 a.b.c.d까지 종속성이있는 경우 a.b.c.d에서 a.b.c 로의 종속성이 없어야합니다. 이것은 일반적으로 응용 프로그램의 높은 결합 및 가능하게는 계층화가 끊어진 상태를 나타내는 패키지 꼬임으로 알려져 있습니다. Sonar과 같은 도구를 사용하면 패키지 꼬임을 찾을 수 있습니다.

나는 일반적으로 저수준 패키지의 상위 수준 패키지와 구현에 내 API의 인터페이스를 넣습니다. 따라서 참조는 하위 패키지에서 상위 패키지로 이동합니다.

API가 하위 패키지에있는 경우 패키지를 재구성해야합니다.

+0

+1은 의존성 반전 원리에 주목했다. –

관련 문제