Несмотря на заученный ответ Билла Бикфорда и приведенный выше пример вики, может потребоваться сделать один шаг назад.
Вам определенно НЕ нужно Builder или Посетитель для создания сериализаторов, таких как XMLBuilder или JSONBuilder. Пример по ссылке на CodeBetter пытается продемонстрировать двойную отправку и ее связь с Шаблон посетителя . На мой взгляд, его пример в лучшем случае сбивает с толку.
Объект C # XMLSerialiser, например, объединяет объект любого типа, для которого он был создан, в документ XML. Нет Посетитель или какой-либо другой шаблон в поле зрения! Существует отдельный процесс до persist сериализованного документа (к любому типу хранилища), если это необходимо, и когда вы объединяете эти операции (сериализация и постоянство) в массиве объектов, это где Посетитель применим.
Вместо того, чтобы учить каждый объект в массиве, как сохранять себя во множестве возможных форматов, Шаблон посетителя позволяет другому объекту "посещать" и выполнять операцию хранения. Это в значительной степени в точности пример Wiki Visitor, который показывает, как можно сохранять объекты различных форм, не зная, как сохранить саму форму.
Таким образом, вы можете изучать сериализацию в отрыве от Посетителя или Строителя, потому что они НЕ связаны ... что, я думаю, вы подозревали! Если вы новичок в шаблонах, Посетитель является одним из самых трудных для понимания .....