이것은 대부분 의견에 근거한 것이지만 어쨌든 2p를 넣을 것입니다.
내가 항상했던 방식은 나 자신에게 물어 보는 것입니다. 코드에서 해야 할 일을 수행하는 데 필요한 최소한의 지식 은 무엇입니까?
내 코드가의 코드 만 사용 하는 경우 종속성으로 Other team's library
만 포함 Other team's library
합니다.
코드에서의 코드 도 사용하는 경우 코드 도Third-party library
포함합니다.
하자 난에서 다음과 같은 클래스를 가지고 말을 My Library
, Other Library
그리고 Third-party Library
(나는 예제 코드 자바를 사용합니다)
package mylibrary;
import otherlibrary.Bar;
public class Foo {
public void doFoo() {
Bar bar = new Bar();
bar.doBar();
}
}
에서 Other Library
package otherlibrary;
import thirdparty.Baz;
public class Bar {
public void doBar() {
Baz baz = new Baz();
baz.doSomething();
}
}
에서 Third-party library
package thirdparty;
public class Baz {
public void doBaz() {
System.out.println("baz");
}
}
내 코드는의 코드 Foo
에만 의존 otherlibrary
하기 때문에 이것이 내가 포함하는 전부입니다. 그것이 내가 관심하는 전부이기 때문입니다. 나는 otherlibrary.Bar#doBar
그것이 무엇을 하는지 상관하지 않고 단지 그것을하기를 원합니다.
그러나 다음과 같이 무언가를 수행 otherlibrary.Bar#doBar
하도록 a Baz
를 변경했습니다.
public void doBar(Baz baz) {
baz.doBaz();
}
그런 다음 mylibrary.Foo#doFoo
같은 것으로 변경해야합니다
public void doFoo() {
Bar bar = new Bar();
Baz baz = new Baz();
bar.doBar(baz);
}
내가 지금하는 방법에 관심이 있기 때문에 Bar#doBar
그 일을 할 것입니다, 내 코드가 필요 에 대해 알고 Baz
내가하고 싶은 일을하기 위해, 내가 포함 라이브러리에 대한 명시 할 필요가있다.
내 코드 가thirdparty
라이브러리 내의 내용에 대해 알고 있어야 하는 경우 종속성으로 포함시켜야합니다.
아마도 저자는 Bar
더 많은 세부 사항을 숨겨야 하지만 thirdparty
라이브러리 를 포함 할 필요가 없습니다 ...
thirdyparty
버전 4로 시작하고 버전 3이otherlibrary
필요한 경우 항상 문제가됩니다 .