python开发备忘录,
本文主要详细介绍Python设计模式中的memento模式。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。
00-1010 memento模式应用场景代码示例摘要
目录
Memento模式,在不打破闭包的前提下,捕捉一个对象的内部状态,并将这个状态保存在对象外部。通过这种方式,对象可以在以后恢复到其原始保存状态。
简单来说,我们可以记录下操作过程中的某个状态,遇到错误的时候还原当前状态。这是为了处理业务流程中的异常情况而设计的。
优点:
有时,一些发起者对象的内部信息必须存储在发起者对象之外,但是它必须由发起者对象本身读取。此时,memento模式的使用可以将复杂的发起人内部信息与其他对象屏蔽开来,从而可以适当地保持封装的边界。这种模式简化了赞助商。发起者不再需要管理和保存他们内部状态的版本,但是客户端可以自己管理他们需要的这些状态的版本。当发起人角色的状态改变时,它可能无效。此时,临时存储的备忘录可用于恢复状态。缺点:
如果发起人角色的状态需要完全存储在memo对象中,那么memo对象在资源消耗方面会很昂贵。当负责人的角色存储备忘录时,负责人可能不知道这种状态会占用多少存储空间,从而无法提醒用户某项操作是否昂贵。当发起人角色的状态发生变化时,此协议可能无效。如果状态改变成功率不高,最好采用“假设”协议模式。
备忘录模式
实体角色:
发起人:负责创建备忘录,记录自己当前时刻的内部状态,并可以利用备忘录还原内部状态。发起者可以根据需要决定Memento存储哪些内部状态。
Memento(备忘录):负责存储发起者对象的内部状态,可以阻止发起者以外的其他对象访问备忘录。备忘录有两个界面:
1.看守人只能看到备忘录狭窄的界面,他只能传递给其他对象。
2.2号。发起者可以看到备忘录的宽界面,允许它访问返回到先前状态所需的所有数据。
看守者:负责纪念品,不能访问或操作纪念品的内容。
应用场景
类别添加编号:
def __init__(self):
self.start=1
定义添加(自身,编号):
self.start=数字
打印(自启动)
班级纪念品:
备忘录
def备份(self,obj=None):
设置备份方法
:param obj:
:返回:
self . obj _ dict=copy . deep copy(obj。__字典_ _)
打印(备份数据:{} )。format(self.obj_dict))
定义恢复(自身,对象):
备份方法
:param obj:
:返回:
obj。__词典_ _。清除()
obj。__词典_ _。更新(self.obj_dict)
返回对象
if __name__==__main__:
test=AddNumber()
memento=Memento()
对于I在[1,2,3, n ,4]:
如果i==2:
纪念品.备份(测试)
尝试:
测试.添加(一)
除了e:类型错误
打印(e)
打印(测试.开始)
纪念品.恢复(测试)
打印(测试.开始)
代码示例
本文到此为止。希望能帮到你,也希望你能多关注更多热门IT软件开发工作室的内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。