Pregunta

I utilizar el patrón Memento para guardar propiedades de una forma de múltiples instancias, en donde n formas son creadas por el usuario dentro de un formulario de los padres. El propósito del recuerdo es recuperar el mismo número de formas, y sus ajustes, cuando un usuario cierre y posteriormente volver a abrir el formulario principal. El ahorro de los recuerdos de formulario se realiza mediante un botón "Guardar" en el formulario principal. Así que tengo dos retos ..

  1. necesito un conjunto predeterminado de propiedades que se utilizan cuando se abre una nueva forma, así que donde puedo configurar estos valores por defecto .. En un constructor por defecto vacía del recuerdo, o en algún lugar (¿dónde?) En el Originador?
  2. Ahora quiero que el usuario sea capaz de cambiar los valores por defecto, por lo tanto, para hacer su propio recuerdo por defecto. ¿Cómo / dónde está esta guardará, y cómo puedo determinar si tales recuerdo por defecto ha sido ajustada o no?

Por supuesto que probablemente podría modificar esto funcione de alguna manera, pero me gustaría saber si hay una descripción general patrón que resuelve este, de modo que tengo una directriz firme de seguir.

saludos!

¿Fue útil?

Solución

El constructor vacío por defecto de la clase memento debe estar bien, o puede tener un método de fábrica CreateDefault(), por ejemplo, si desea dejar el constructor por defecto para inicializar un en blanco memento en oposición a una pre-conjunto de configuración por defecto.

Hay un número de diferentes creacional patrones que se puede utilizar para especificar un predeterminado personalizado, incluyendo prototipo y fábrica de resumen .

Otros consejos

Su descripción no coincidía con el Patttern Memento. El punto de Memento es que sólo las instancias de la clase que ha de ser restaurados saber nada acerca de la representación del recuerdo. Es decir, se trata de ocultar Memento estado, en lugar de permitir a los clientes fijar estados arbitrarios.

Como Mark Cidade sugiere anteriormente, existen otros patrones más adecuados a utilizar para su problema.

A partir de la pregunta y los comentarios realizados en la respuesta de Burleigh oso, tengo la sensación de que la aplicación recta de avance es suficiente y no hay necesidad de patrones para ser 'forzada' aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top