Я пытаюсь понять ленивый шаблон инициализации, описанный на Wikipedia. Существует конструктор, принимающий аргумент типа FRUIT_TYPE. Во время инициализации хеш-карта проверяется, имеет ли он уже данный тип плода, и если конструктор не используется для создания плода из данного типа. Затем плод помещается на карту. Я скопировал этот пример, и он отлично работал. Но как создается плод без (imo) необходимого поля для установки его в заданный параметр в конструкторе, e. г.Java: пустой конструктор, принимающий параметр
private FRUIT_TYPE fruitType;
private Fruit(FRUIT_TYPE type){this.fruitType = type}
Что мне не хватает?
Это сломанный пример, в том, что вы не можете реально получить (нетрадиционно именованный) 'значение FRUIT_TYPE' из произвольной' Fruit' ссылки , Параметр и поле не имеют значения, поскольку ничто их не использует. Он демонстрирует ленивую инициализацию, но плохо. –
@JonSkeet Где я могу найти надежный пример, поскольку он не описан в книге GOF? –
Ну, вы можете легко добавить назначение внутри конструктора и, возможно, метод экземпляра 'getFruitType()', и в этот момент все будет хорошо ... –