Ich denke, dies ist größtenteils meinungsbasiert, aber ich werde trotzdem meine 2p einsetzen.
Ich habe es immer so gemacht, indem ich mich gefragt habe, wie viel Wissen mein Code mindestens benötigt , um das zu tun, was er tun soll.
Wenn mein Code nur Code von verwendet Other team's library, werde ich nur Other team's libraryals Abhängigkeit einschließen .
Wenn mein Code auch Code von verwendet Third-party library, werde ich ihn ebenfalls einschließen.
Angenommen, ich hatte die folgenden Klassen von My Library, Other Libraryund Third-party Library(ich verwende Java für den Beispielcode)
package mylibrary;
import otherlibrary.Bar;
public class Foo {
public void doFoo() {
Bar bar = new Bar();
bar.doBar();
}
}
In dem Other Library
package otherlibrary;
import thirdparty.Baz;
public class Bar {
public void doBar() {
Baz baz = new Baz();
baz.doSomething();
}
}
In dem Third-party library
package thirdparty;
public class Baz {
public void doBaz() {
System.out.println("baz");
}
}
Da mein Code Foonur vom Code abhängt otherlibrary, ist das alles, was ich einschließen würde, denn das ist alles, was mich interessiert. Es ist mir egal, wie otherlibrary.Bar#doBares funktioniert, ich möchte nur, dass es es tut.
Wenn wir jedoch das geändert haben otherlibrary.Bar#doBar, um ein Bazzu akzeptieren , um etwas damit zu tun, wie
public void doBar(Baz baz) {
baz.doBaz();
}
Ich müsste dann mylibrary.Foo#doFoozu so etwas wechseln
public void doFoo() {
Bar bar = new Bar();
Baz baz = new Baz();
bar.doBar(baz);
}
Weil ich jetzt bin interessiert , wie Bar#doBarwird seine Sache zu tun, und mein Code muss wissen , über Bazzu tun , was ich will , es zu tun, muss ich über die Bibliotheken explizit sein I enthalten.
Wenn mein Code muss über solche Sachen in der wissen - thirdpartyBibliothek, dann ich muss es als eine Abhängigkeit enthalten.
Obwohl der Autor von vielleicht Barmehr dieser Details verstecken sollte, muss ich die thirdpartyBibliothek nicht einschließen ...
thirdypartyVersion 4 beginne undotherlibraryVersion 3 benötige. Was machen Sie Leute dagegen?