J1: Unikaj długich list importu, używając symboli wieloznacznych
Jeśli używasz dwóch lub więcej klas z pakietu, zaimportuj cały pakiet za pomocą
pakiet importowy. *;
Długie listy importów zniechęcają czytelnika. Nie chcemy zaśmiecać wierzchołków naszych modułów 80 liniami importu. Chcemy raczej, aby import był zwięzłym stwierdzeniem, z którymi pakietami współpracujemy.
Konkretny import to twarde zależności, podczas gdy import symboli wieloznacznych nie. Jeśli konkretnie zaimportujesz klasę, ta klasa musi istnieć. Ale jeśli zaimportujesz pakiet ze znakiem wieloznacznym, nie będzie potrzeby istnienia żadnych konkretnych klas. Instrukcja importu dodaje pakiet do ścieżki wyszukiwania podczas wyszukiwania nazw. Tak więc nie jest tworzona prawdziwa zależność od takich importów, a zatem służą one do mniejszego powiązania naszych modułów.
Czasami przydatna może być długa lista konkretnych importów. Na przykład, jeśli masz do czynienia ze starszym kodem i chcesz dowiedzieć się, dla jakich klas musisz budować makiety i kody pośredniczące, możesz przejść listę konkretnych importów, aby znaleźć prawdziwe kwalifikowane nazwy wszystkich tych klas, a następnie odpowiednie odcinki na miejscu. Jednak takie wykorzystanie do konkretnego importu jest bardzo rzadkie. Co więcej, większość współczesnych IDE pozwoli ci przekonwertować importowany z symboli wieloznacznych import na listę konkretnych importów za pomocą jednego polecenia. Dlatego nawet w przypadku starszych wersji lepiej importować symbole wieloznaczne.
Importowanie symboli wieloznacznych może czasem powodować konflikty nazw i niejednoznaczności. Dwie klasy o tej samej nazwie, ale w różnych pakietach, będą musiały zostać specjalnie zaimportowane lub przynajmniej określone, jeśli zostaną użyte. Może to być uciążliwe, ale jest na tyle rzadkie, że korzystanie z importu z użyciem symboli wieloznacznych jest ogólnie lepsze niż określone importowanie.