Estoy implementando el Builder Pattern para generar un conjunto de objetos. Estos objetos luego tienen que ser serializados a XML y deserializados de XML.Integración de la serialización y la deserialización en el patrón de diseño del generador usando C#
Sé cómo realizar la serialización y deserialización, sin embargo, no estoy seguro de cómo integrarlo en el patrón de diseño.
Supongamos, por ejemplo, que mi código usa el constructor para crear productos foo y barra. Mi primer pensamiento es poner una función de serialización en cada uno porque cada producto sabe qué serializar.
Mi siguiente pensamiento fue poner la deserialización en el Director o en el ConcreteBuilder.
Lo que no me gusta de esto es que las funciones de serialización y deserialización estarán en diferentes lugares: una en el archivo para la declaración de los objetos foo y bar y otra en los archivos de otra cosa. Me preocupa que puedan terminar desincronizándose entre sí mientras trabajo en las clases de productos.
Mi último pensamiento fue para el Director o ConcreteBuilder para realizar la serialización y deserialización. Lo que no me gusta de eso es que los productos tienen que saber qué constructor se usó o saber quién es el Director.
Para aclarar - hay dos situaciones en las que un producto puede ser creado:
- El usuario hace clic en un botón en la interfaz de usuario
- usuario carga un proyecto XML
Buena idea, sin embargo, realizo la serialización XML y la deserialización manualmente porque me encontré con demasiadas limitaciones con el método automático. También necesito activar eventos después de la deserialización y establecer indicadores relacionados con el estado del proyecto del usuario. – Andy