Z>Так ведь если применить шаблон lazy initialization, то получится то же самое. Z>Разве нет?
Отложенная инициализация это не про передачу параметров, а про то, когда и при каких условиях происходит "дорогая" (ресурсоемкая) операция.
Из стартового сообщения у меня сложилось впечатление, что задача состоит в том, чтобы ресурсоемкоую операцию (а не передачу параметров) убрать из конструктора.
После Ваших пояснений про беспараметровый конструктор и статические методы, я полагаю, что lazy initialization в приведенном Вами примере (class Test) можно применить разве что для того, чтобы убрать метод Init (или сделать его вызов опциональным).
К своему предыдущему комментарию про builder добавлю, что методы все-таки будут дублироваться, при этом я бы возвращал из билдера объект базового класса (или интерфейса) без Set/Init-методов.