Здравствуйте, zelenprog, Вы писали:
Z>Получается, для каждого класса нужен еще один дополнительный класс Builder?
Для тех классов, у которых создание/настройка «размазаны» по времени, но отделены от собственно использования. Такой подход гарантирует пользователю типа, что коль скоро у него есть созданный объект, то он уже до конца проинициализирован, и в дополнительных проверках перед использованием типа IsInitialized не нуждается.
Z>То есть количество классов увеличится вдвое.
Отдельный функционал — отдельный класс. В данном случае функционалы — постепенное конструирование объекта vs. последующее использование объекта.
Z>В Википедии есть статья "Порождающие шаблоны проектирования": Z>Из них под ваше описание подходит "Фабричный метод": Z>Верно я понял?
В Википедии и в GoF это крутится вокруг полиморфного создания объектов, там какие-то иерархии и ООП'шное болото.
Я же говорю про простой прямолинейный подход, think of StringBuilder vs. String.