Почему объекты LocalDate
, LocalTime
, Stream
и т. д. используют фабричный метод of()
вместо конструктора?
Я нашел объяснение, почему следует использовать фабричные методы вместо new
здесь. Этот ответ дает ряд причин, но единственное, что имеет отношение к Java Date/Time API, это следующее:
в отличие от конструкторов, им не требуется создавать новый объект при каждом вызове.
Поскольку LocalDate
и LocalTime
неизменяемы, вероятно, имеет смысл использовать фабрику и повторно использовать существующие объекты вместо того, чтобы каждый раз создавать новый объект.
Является ли это причиной того, что такие объекты, как LocalDate
и LocalTime
, создаются с помощью фабричного метода (т. е. LocalDate.of()
)? Есть ли другие причины?
Кроме того, объекты Stream
изменяемы. Почему фабричный метод (Stream.of()
) используется для создания Stream
?