当前位置: 首页 > news >正文

东莞网站建设哪个平台好网站建设这个行业如何

东莞网站建设哪个平台好,网站建设这个行业如何,网站建设的教程视频,网站后台管理系统登陆23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…

23种计模式之 前言 +(5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、+(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、+(11)策略模式、责任链模式、命令模式、中介者模式、模板模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式 + 设计原则

21-Python与设计模式–备忘录模式

一、游戏进度保存

打过游戏的朋友一定知道,大多数游戏都有保存进度的功能,如果一局游戏下来,忘保存了进度,
那么下次只能从上次进度点开始重新打了。一般情况下,保存进度是要存在可持久化存储器上,
本例中先以保存在内存中来模拟实现该场景的情形。
以模拟一个战斗角色为例。

首先,创建游戏角色。

class GameCharacter():vitality = 0attack = 0defense = 0def displayState(self):print 'Current Values:'print 'Life:%d' % self.vitalityprint 'Attack:%d' % self.attackprint 'Defence:%d' % self.defensedef initState(self,vitality,attack,defense):self.vitality = vitalityself.attack = attackself.defense = defensedef saveState(self):return Memento(self.vitality, self.attack, self.defense)def recoverState(self, memento):self.vitality = memento.vitalityself.attack = memento.attackself.defense = memento.defense
class FightCharactor(GameCharacter):def fight(self):self.vitality -= random.randint(1,10)

GameCharacter定义了基本的生命值、攻击值、防御值以及实现角色状态控制的方法,
FightCharactor实现具体的“战斗”接口。为实现保存进度的细节,还需要一个备忘录,来保存进度。

class Memento:vitality = 0attack = 0defense = 0def __init__(self, vitality, attack, defense):self.vitality = vitalityself.attack = attackself.defense = defense

复制代码万事俱备,在业务逻辑中可以进行类的调度了。

if __name__=="__main__":game_chrctr = FightCharactor()game_chrctr.initState(100,79,60)game_chrctr.displayState()memento = game_chrctr.saveState()game_chrctr.fight()game_chrctr.displayState()game_chrctr.recoverState(memento)game_chrctr.displayState()

打印如下:

Current Values: Life:100 Attack:79 Defence:60 Current Values: Life:91
Attack:79 Defence:60 Current Values: Life:100 Attack:79 Defence:60

由生命值变化可知,先保存状态值,经过一轮打斗后,生命值由100变为91,
而后恢复状态值,生命值又恢复成100

二、备忘录模式

备忘录模式定义如下:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
这样以后就可以将该对象恢复到原来保存的状态。在备忘录模式中,如果要保存的状态多,
可以创造一个备忘录管理者角色来管理备忘录。

三、备忘录模式应用场景

1、需要保存和恢复数据的相关状态场景。如保存游戏状态的场景;撤销场景,如Ctrl-Z操作;事务回滚的应用。一般情况下事务回滚有两种方式:一是把从恢复点开始的操作都反向执行一遍;二是直接恢复到恢复点的各种状态。两种方式各有优缺点,要结合业务场景,决定使用哪种模式;
2、副本监控场景。备忘录可以当作一个临时的副本监控,实现非实时和准实时的监控。
http://www.yayakq.cn/news/832426/

相关文章:

  • 对网站建设公司说怎样做自己的销售网站
  • 网站制作一般需要多少钱?个人网站可以备案几个
  • 263企业邮箱pop3设置云南网站seo服务
  • 服务器创建网站wordpress修改备案号
  • 阜阳城乡建设局网站经销商城建站
  • 商城网站建设合同范本大城 网站建设
  • 昆明做网站那家好宁波搭建网站
  • 网页qq邮箱怎么取消自动登录临漳seo整站排名
  • 电子商务网站建设与维护读书报告网站页面维护
  • 网站域名到期什么意思做暧暧国外网站
  • 网站设计师发展好乐买网站推广方式
  • 企业网站源码带后台wordpress文章数据库位置
  • 国际网站建设与维护wordpress文章版权插件
  • 怎样做一个网站平台旅游网站建设模板下载
  • 成都网站建设scdzks电商网站适合做响应式布局吗
  • 番禺建设网站多少钱咸阳做网站价格
  • 网站 组成福州市建设局网站 动态
  • 网站字体 font-family深圳品牌设计公司有哪些
  • 网站建设与管理专业好不好就业2022房地产行业现状及前景
  • 网站建站无锡谷歌优化培训
  • 学院网站建设意义南山网站建设公司乐云seo
  • 个体工商户可以申请网站建设吗杭州知名网站建设
  • 工业设计网站排名网站怎么做实名认证吗
  • 德阳做网站安卓程序下载安装
  • 网站建设行业现状做排行的网站
  • ip138域名查询手机网站seo教程
  • 网站建设管理工作网站建设与管理教学方案
  • 网站建设详细报价网站建设介绍
  • 网站建设有多少公司长沙做详情页的公司
  • 网站建设与 宣传关系国家房产信息网官网