J1: Vermeiden Sie lange Importlisten, indem Sie Platzhalter verwenden
Wenn Sie zwei oder mehr Klassen aus einem Paket verwenden, importieren Sie das gesamte Paket mit
Paket importieren. *;
Lange Importlisten entmutigen den Leser. Wir wollen die Spitzen unserer Module nicht mit 80 Importzeilen überladen. Vielmehr möchten wir, dass die Importe eine präzise Aussage darüber sind, mit welchen Paketen wir zusammenarbeiten.
Bestimmte Importe sind harte Abhängigkeiten, Platzhalterimporte hingegen nicht. Wenn Sie speziell eine Klasse importieren, muss diese Klasse vorhanden sein. Wenn Sie jedoch ein Paket mit einem Platzhalter importieren, müssen keine bestimmten Klassen vorhanden sein. Die import-Anweisung fügt das Paket einfach dem Suchpfad hinzu, wenn nach Namen gesucht wird. Durch solche Importe entsteht also keine echte Abhängigkeit, und sie dienen daher dazu, unsere Module weniger gekoppelt zu halten.
Es gibt Zeiten, in denen die lange Liste bestimmter Importe nützlich sein kann. Wenn Sie beispielsweise mit Legacy-Code arbeiten und herausfinden möchten, für welche Klassen Sie Mocks und Stubs erstellen müssen, können Sie die Liste der spezifischen Importe durchgehen, um die tatsächlichen qualifizierten Namen aller dieser Klassen zu ermitteln und dann zu setzen die entsprechenden Stichleitungen vorhanden. Diese Verwendung für bestimmte Importe ist jedoch sehr selten. Darüber hinaus können Sie mit den meisten modernen IDEs die Wildcard-Importe mit einem einzigen Befehl in eine Liste spezifischer Importe konvertieren. Selbst im Legacy-Fall ist es besser, Platzhalter zu importieren.
Platzhalterimporte können manchmal zu Namenskonflikten und Mehrdeutigkeiten führen. Zwei Klassen mit demselben Namen, jedoch in unterschiedlichen Paketen, müssen speziell importiert oder zumindest speziell qualifiziert werden, wenn sie verwendet werden. Dies kann ein Ärgernis sein, ist jedoch selten genug, dass die Verwendung von Platzhalterimporten im Allgemeinen immer noch besser ist als bestimmte Importe.