2008-09-17 7 views
5

¿Existe algún patrón que sea útil para guardar y cargar diferentes formatos de archivo?Patrón para guardar y escribir en diferentes formatos de archivo

Por ejemplo, tengo una jerarquía de clases complicada para el documento, pero quiero admitir algunos formatos de archivo diferentes.

Pensé en el patrón de Estrategia, pero no estoy convencido por la necesidad de acceder a cada parte del objeto para guardarlo y cargarlo.

Respuesta

2

Puede usar un Visitor Pattern, le permite iterar sobre su jerarquía realizando diferentes operaciones dependiendo del nodo que el visitante esté procesando actualmente.

Malas noticias: probablemente necesite agregar al menos un método virtual en la parte superior de la jerarquía, y tal vez redefinirlo en algunas clases derivadas, y el visitante aún acceda a los datos de los nodos, pero desacople el formato de archivo , ya que las implementaciones de diferentes visitantes pueden escribir los datos recopilados de diferentes maneras.

Eche un vistazo también al memento pattern si ocultar los datos de jerarquía de clase es una necesidad. This article también podría ser útil.

Editar: Enlace a la original Memento pattern article usando Google caché

+0

Su enlace al artículo para el patrón memento se rompe. ¿Tienes otra buena? –

+0

Guau, han pasado como 7 años; y ni siquiera recuerdo el nombre del artículo, lo siento –

+0

buenas noticias, lo encontré usando google caché: http://webcache.googleusercontent.com/search?q=cache:www.ondotnet.com/pub/a/dotnet/ 2002/09/09/memento.html –

1

Es posible que desee echar un vistazo al patrón del generador. GoF página 97 ..

0

¿Qué tal (algo basado en) el Template method pattern?

Una superclase sabe cómo desgarrar la jerarquía de clases, pero confía en sus subclases para hacer realmente algo útil con ella.

Cuestiones relacionadas