Какой лучший способ лениво инициализировать коллекцию, я специально смотрю на Java. Я видел, как некоторые люди решают сделать это в методах модификации (которые кажутся немного отвратительными), а именно:
public void addApple(final Apple apple) {
if (this.apples == null) {
apples = new LinkedList<Apple>();
}
this.apples.add(apple);
}
Вы могли бы реорганизовать инициализацию в метод и вызвать его из add / delete / update и т. Д., Но это выглядит немного бред. Это часто усугубляется тем фактом, что люди также выставляют саму коллекцию через:
public Collection<Apple> getApples() {
return apples;
}
, который нарушает инкапсуляцию и ведет к непосредственному доступу людей к Коллекции.
Целью ленивой инициализации является исключительно производительность.
Мне любопытно посмотреть, какие другие народы предложили подходы для этого. Есть идеи?