软件构造lab3——电子跃迁设计之state和memento模式设计

电子跃迁时,保存每一次跃迁的状态,当需要回退时,直接输出需要回退的步数即可回到之前的状态。
设计如下:

UML图
软件构造lab3——电子跃迁设计之state和memento模式设计
每个类的具体设计如下:
1.Original类

软件构造lab3——电子跃迁设计之state和memento模式设计
**2 Memento

软件构造lab3——电子跃迁设计之state和memento模式设计
3State类
软件构造lab3——电子跃迁设计之state和memento模式设计

4Storage类

软件构造lab3——电子跃迁设计之state和memento模式设计

具体介绍如下:
每一个state代表原子结构系统的一个状态,每次进行电子跃迁时,Original的对象将会将当前的state深层拷贝一份放入memento中,进行深层拷贝因为state是可变数据类型,如果不进行深层拷贝每次电子跃迁时会将存储的过去的状态都修改成当前的状态,然后memento将会被存储到仓库类storage类的对象中,该类管理所有的memento

以下在客户端检测设计的运行结果:

以下展示了在上图删除物体后的系统状态下最外层的电子经3次跃迁的过程:

首先从第五层跃迁到第四层
软件构造lab3——电子跃迁设计之state和memento模式设计

从第四层跃迁到第三层

软件构造lab3——电子跃迁设计之state和memento模式设计

从第三层跃迁到第一层

软件构造lab3——电子跃迁设计之state和memento模式设计

u 跃迁后恢复某个先前的状态

以下展示上述电子从第5层跃迁到第一层后返回第五层,如下

可看到电子又回到第五层
软件构造lab3——电子跃迁设计之state和memento模式设计