首页 > 编程语言 >Java学设计模式之备忘录模式

Java学设计模式之备忘录模式

时间:2024-05-10 14:22:27浏览次数:24  
标签:Java 对象 恢复 模式 备忘录 发起人 设计模式

一、备忘录模式概念

1.1 什么是备忘录模式

备忘录模式是一种行为型设计模式,它允许在不破坏封装性的前提下捕获和恢复对象的内部状态。这种模式通常用于需要实现撤销操作或者历史记录功能的场景。

结构

备忘录模式通常包含以下几个要素:

  1. Originator(发起人): 定义了一个方法用于创建备忘录对象,并且可以通过备忘录对象恢复自身的状态。

  2. Memento(备忘录): 存储了发起人对象的内部状态。备忘录对象可以被发起人对象使用来恢复其内部状态。

  3. Caretaker(负责人): 负责保存备忘录对象,并且不能对备忘录对象的内容进行操作。负责人通常只负责存储备忘录对象,以便日后对发起人对象进行状态恢复。

二、备忘录模式代码

2.1

三、总结

备忘录模式的优点包括:

  • 可以在不破坏对象封装性的前提下保存和恢复对象的内部状态。
  • 可以实现撤销和恢复操作,提供了良好的用户体验。

缺点包括:

  • 如果备忘录对象很大或者需要频繁保存,可能会消耗大量的内存和处理时间。
  • 发起人对象需要负责管理备忘录对象,可能会增加其复杂性。备忘录模式是一种行为型设计模式,允许在不暴露对象实现细节的情况下保存和恢复其内部状态。它通常在需要实现撤销、恢复或历史记录功能的场景中使用。

标签:Java,对象,恢复,模式,备忘录,发起人,设计模式
From: https://www.cnblogs.com/Linzj5950/p/18184224

相关文章

  • Java面试题:@PostConstruct、init-method和afterPropertiesSet执行顺序?
    在Spring框架中,@PostConstruct注解、init-method属性、以及afterPropertiesSet()方法通常用于初始化Bean的逻辑。它们都提供了在Bean创建和初始化完成后执行的方法,但执行顺序有所不同。想要知道@PostConstruct、init-method、afterPropertiesSet()的执行顺序,只要搞明白它们各自在......
  • Java学设计模式之中介者模式
    一、中介者模式概念1.1什么是中介者模式中介者模式是一种行为型设计模式,它通过将对象之间的交互行为集中到一个中介者对象中来解耦对象之间的关联。这种模式被用来减少对象之间的直接通信,从而降低了系统的耦合度,使得系统易于维护和扩展。结构中介者模式通常包含以下几个要素:......
  • Java 判断是否为工作时间
    /***判断是否为工作时间(上午:7:30-11:30下午:13:30-17:20)*@return*/publicstaticbooleanisWithinWorkingHours(){LocalTimecurrentTime=LocalTime.now();//LocalTimecurrentTime=LocalTime.parse("17:19:59");......
  • 操作系统线程和Java线程的状态
    操作系统线程和Java线程的状态  一、操作系统线程的状态  操作系统的线程主要有以下三个状态  1. 就绪状态(ready):线程正在等待使用CPU,经调度程序调用之后进入running状态。  2.执行状态(running):线程正在使用CPU。  3.等待状态(waiting):线程经过等......
  • 【java】ArrayList和LinkedList的区别
    一、ArrayList和LinkedList的相同点ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用,他们都可以对元素的增删改查进行操作。ArrayList、LinkedList、Vector和Stack是List的四个实现类,List是一个接口,它继承与Collection接口,代表有序的队列。其中Vector......
  • Java学设计模式之享元模式
    一、享元模式概念1.1什么是享元模式享元模式是一种结构型设计模式,旨在通过共享对象来最大程度地减少内存使用和提高性能。在享元模式中,对象被设计成可共享的,以便在需要时能够被多个不同的上下文使用。结构享元模式通常包含以下几个要素:Flyweight(享元):定义了共享对象的接口......
  • JDK源码阅读-------自学笔记(二十六)(java.util.Map 自定义讲解)
    一、简介Map就是用来存储“键(key)-值(value)”对的.通过键寻找value,所以键不能重复.数组的本质也是一种键值对,区别就是索引一般是数字,而Map的Key可以是任意对象(字符串,数字),相当于把数组的索引范围扩的更大,使用更方便.实际开发中较为常用.二、Map的常用方法实例(1......
  • 设计模式之七大原则
    设计模式之七大原则(一)——单一职责原则、开放-关闭原则_系统设计原则单一职责隔离-CSDN博客一、设计模式的目的设计模式的目的是为了提高代码重用性、可读性、可扩展性、可靠性,使得程序呈现出高内聚、低耦合的特性。二、设计模式的七大原则我们在设计一些设计模式时,一般遵循......
  • 设计模式详解
    本文结构图:除了类本身,设计模式更强调多个类/对象之间的关系和交互过程——比接口/类复用的粒度更大创建型模式(Creationalpatterns)工厂方法模式(FactoryMethodpattern)工厂方法也被称作虚拟构造器(VirtualConstructor)即定义一个用于创建对象的接口,让子类类决定实例化......
  • 设计模式03----构造者模式
    构造者模式:是一种创建型设计模式,是将一个对象拆分成多个部件分别进行构造然后组合成为一个整体的设计模式产品(Product):被构建的复杂对象,通常包含多个组成部件,例如一个需要配置的汽车对象。抽象建造者(Builder):一个接口,定义了构建产品各个部件的方法。具体建造者(ConcreteBuilde......