python开发备忘录,

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: