Modo memorándum del modo de diseño 18

antecedentes

Comencemos con el tema, ¿qué problema resuelve el modo memo? Se utiliza principalmente para realizar la función de deshacer. Muchos programas tienen la función de deshacer, simplemente presione Ctrl + Z para retirar. La base de datos también tiene una operación de reversión. Hay una función de archivo en el juego. Los juegos de carreras tienen función de retroceso del tiempo.

El modo memo registra el estado interno de un objeto, si necesitamos deshacer la operación actual. Los datos se pueden restaurar a su estado original.

Que es el modo memo

"

Sin violar la encapsulación, capture y externalice el estado interno de un objeto para que el objeto pueda restaurarse a este estado más tarde. De esta manera, el objeto puede restaurarse a su estado original en el futuro).

"

El modo de notas también se denomina modo de instantánea. Solo tenemos que recordar que el uso del modo memo es un modo de diseño para realizar la operación de deshacer.

El modo memorándum se compone principalmente de los siguientes tres elementos:

"
  • Rol del originador: registra la información del estado interno actual, proporciona las funciones de creación de notas y restauración de datos de notas, y realiza otras funciones comerciales. Puede acceder a toda la información en la nota.

  • Función de recuerdo: responsable de almacenar el estado interno del iniciador y proporcionar estos estados internos al iniciador cuando sea necesario.

  • Rol de administrador (cuidador): administra notas, proporciona las funciones de guardar y obtener notas, pero no pueden acceder ni modificar el contenido de las notas.

"

Modo de nota

Código

Recuerdo

Vigilante

Autor

Prueba de código

@Test
public void test() {
    Originator or=new Originator();
    Caretaker cr=new Caretaker();
    or.setState("S0");
    System.out.println("初始状态:"+or.getState());
    cr.setMemento(or.createMemento()); //保存状态
    or.setState("S1");
    System.out.println("新的状态:"+or.getState());
    or.restoreMemento(cr.getMemento()); //恢复状态
    System.out.println("恢复状态:"+or.getState());
}

Resultados de la prueba:

初始状态:S0
新的状态:S1
恢复状态:S0

Pensamientos sobre el modo Memorando

Tomemos otro escenario, si desea desarrollar un sistema de aprobación de procesos. Aquí simplifico el proceso a. Debe haber una función de rechazo en la aprobación del proceso. Por ejemplo, en el proceso C, tenemos que rechazar la B. ¿Es posible usar el modo memorandum?

rechazar

Pero ha descubierto que no hay problema. Si hay muchos estados, entonces es necesario hacer una copia de seguridad de cada estado, lo que consumirá recursos de memoria relativamente grandes. Por lo tanto, tenga en cuenta este riesgo al utilizar el modo memo.

Recomendado en el pasado

Escanee el código QR para ser más emocionante. O busque Lvshen_9 en WeChat , puede responder para obtener información en segundo plano

  1. 回复"java" 获取java电子书;

  2. 回复"python"获取python电子书;

  3. 回复"算法"获取算法电子书;

  4. 回复"大数据"获取大数据电子书;

  5. 回复"spring"获取SpringBoot的学习视频。

  6. 回复"面试"获取一线大厂面试资料

  7. 回复"进阶之路"获取Java进阶之路的思维导图

  8. 回复"手册"获取阿里巴巴Java开发手册(嵩山终极版)

  9. 回复"总结"获取Java后端面试经验总结PDF版

  10. 回复"Redis"获取Redis命令手册,和Redis专项面试习题(PDF)

  11. 回复"并发导图"获取Java并发编程思维导图(xmind终极版)

Otro: haga clic en [ Mis beneficios ] para tener más sorpresas.

Supongo que te gusta

Origin blog.csdn.net/wujialv/article/details/109635805
Recomendado
Clasificación