Я читаю Effective Java
Джошуа Блоха, и у меня есть вопрос по Item1 Static Factory Method
.
Цитата [Блох, стр.7]
Интерфейсы не могут иметь статических методов, поэтому по соглашению статические фабричные методы для интерфейса с именем Type помещаются в класс, не поддерживающий создание экземпляров, с именем Types. Например, Java Collections Framework предоставляет неизменяемые коллекции, синхронизированные коллекции и тому подобное. Почти все эти реализации экспортируются с помощью статических фабричных методов в одном неинстанцируемом классе (java.util.Collections). Все классы возвращаемых объектов не являются общедоступными.
В порядке. Когда я смотрю исходный код, я вижу java.util.Collection
интерфейс и java.util.Collections
класс с частным конструктором (класс, не требующий создания экземпляров). и я вижу, что класс Collections, не являющийся экземпляром, имеет все статические методы, как и сказал Блох. Но я не вижу связи между двумя классами, как сказал Блох.
Интерфейсы не могут иметь статических методов, поэтому по соглашению статические фабричные методы для интерфейса с именем Type помещаются в класс, не являющийся экземпляром, с именем Types.
Может ли кто-нибудь указать мне на очевидное?
что это значит, когда он сказал
Все классы возвращаемых объектов не являются общедоступными
Вот где я получаю исходные коды java: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Collection.java?av=f