M>Отложенная инициализация это не про передачу параметров, а про то, когда и при каких условиях происходит "дорогая" (ресурсоемкая) операция.
ОК.
M>Из стартового сообщения у меня сложилось впечатление, что задача состоит в том, чтобы ресурсоемкоую операцию (а не передачу параметров) убрать из конструктора.
Задача в том, чтобы класс выполнил "захват" ресурсов, необходимых для его функционирования, с учетом того, что невозможно передать необходимую для этого информацию через параметры конструктора.
M>После Ваших пояснений про беспараметровый конструктор и статические методы, я полагаю, что lazy initialization в приведенном Вами примере (class Test) можно применить разве что для того, чтобы убрать метод Init (или сделать его вызов опциональным).
M>К своему предыдущему комментарию про builder добавлю, что методы все-таки будут дублироваться, при этом я бы возвращал из билдера объект базового класса (или интерфейса) без Set/Init-методов.
Прошу перейти к обсуждению этой проблемы на примере.
Я описал пример вот в этом сообщении:
https://rsdn.org/forum/design/8590957.1Автор: zelenprog
Дата: 31.08.23