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

网站建设公司果动小学电教检查网站建设资料

网站建设公司果动,小学电教检查网站建设资料,wordpress 链接跳转,广州推动优化防控措施落地文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 备忘录#xff08;Memento#xff09;用于在不破坏目标对象封装特性的基础上#xff0c;将目标对象内部的状态存储到外部对象中#xff0c;以备之后恢复状态时使用。 1.1 角色 Originato… 文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 备忘录Memento用于在不破坏目标对象封装特性的基础上将目标对象内部的状态存储到外部对象中以备之后恢复状态时使用。 1.1 角色 Originator发起者当前的基础对象它会将自己的状态保存进备忘录。 savememento()方法Originator通过该方法将它自己状态保存进一个备忘录对象。restorememento()方法Originator通过该方法将它自己状态回滚至指定备忘录。 Memento备忘录 存储Originator状态的对象Caretaker管理者保存多条备忘录的对象并维护着备忘录的索引在需要的时候会返回相应的备忘录。 1.2 类图 #mermaid-svg-O8hqzQw2a82jIgMR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-O8hqzQw2a82jIgMR .error-icon{fill:#552222;}#mermaid-svg-O8hqzQw2a82jIgMR .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-O8hqzQw2a82jIgMR .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-O8hqzQw2a82jIgMR .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-O8hqzQw2a82jIgMR .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-O8hqzQw2a82jIgMR .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-O8hqzQw2a82jIgMR .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-O8hqzQw2a82jIgMR .marker{fill:#333333;stroke:#333333;}#mermaid-svg-O8hqzQw2a82jIgMR .marker.cross{stroke:#333333;}#mermaid-svg-O8hqzQw2a82jIgMR svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-O8hqzQw2a82jIgMR g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-O8hqzQw2a82jIgMR g.classGroup text .title{font-weight:bolder;}#mermaid-svg-O8hqzQw2a82jIgMR .nodeLabel,#mermaid-svg-O8hqzQw2a82jIgMR .edgeLabel{color:#131300;}#mermaid-svg-O8hqzQw2a82jIgMR .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-O8hqzQw2a82jIgMR .label text{fill:#131300;}#mermaid-svg-O8hqzQw2a82jIgMR .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-O8hqzQw2a82jIgMR .classTitle{font-weight:bolder;}#mermaid-svg-O8hqzQw2a82jIgMR .node rect,#mermaid-svg-O8hqzQw2a82jIgMR .node circle,#mermaid-svg-O8hqzQw2a82jIgMR .node ellipse,#mermaid-svg-O8hqzQw2a82jIgMR .node polygon,#mermaid-svg-O8hqzQw2a82jIgMR .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-O8hqzQw2a82jIgMR .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-O8hqzQw2a82jIgMR g.clickable{cursor:pointer;}#mermaid-svg-O8hqzQw2a82jIgMR g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-O8hqzQw2a82jIgMR g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-O8hqzQw2a82jIgMR .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-O8hqzQw2a82jIgMR .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-O8hqzQw2a82jIgMR .dashed-line{stroke-dasharray:3;}#mermaid-svg-O8hqzQw2a82jIgMR #compositionStart,#mermaid-svg-O8hqzQw2a82jIgMR .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR #compositionEnd,#mermaid-svg-O8hqzQw2a82jIgMR .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR #dependencyStart,#mermaid-svg-O8hqzQw2a82jIgMR .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR #dependencyStart,#mermaid-svg-O8hqzQw2a82jIgMR .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR #extensionStart,#mermaid-svg-O8hqzQw2a82jIgMR .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR #extensionEnd,#mermaid-svg-O8hqzQw2a82jIgMR .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR #aggregationStart,#mermaid-svg-O8hqzQw2a82jIgMR .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR #aggregationEnd,#mermaid-svg-O8hqzQw2a82jIgMR .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-O8hqzQw2a82jIgMR .edgeTerminals{font-size:11px;}#mermaid-svg-O8hqzQw2a82jIgMR :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Originator -state:State RestoreState(m:Memento) CreateMemento() Memento -state:State GetState() Caretaker StoreMemento(m:Memento) GetMemento(c:Condition) 2. 代码示例 2.1 设计 定义备忘录memento来记录发起者状态它的Get()方法获取它的状态定义发起者Originator 它的方法 CreateMemento() 用它自己创建一条备忘录它的方法 RollBack() 将它自己回滚至指定备忘录的状态它的Set()方法可以设置它的状态它的Get()方法可以获取它的状态 创建一个管理者Caretaker它是备忘录Memento的聚合 它的AddMemento方法向它自身加入一条备忘录它的GetMemento()方法查询一条它管理的指定备忘录 调用 初始化 实例化一个管理者caretaker实例化一个发起者originator 创建备忘录测试 第一次 用发起者创建一条备忘录管理者收录该备忘录 第二次 改变发起者状态用发起者创建一条新备忘录管理者收录该备忘录 第三次 改变发起者状态用发起者创建一条新备忘录管理者收录该备忘录 查看管理者信息应该有三条备忘录 回滚测试 从管理者获取指定索引的备忘录将发起者回滚至该备忘录状态 2.2 代码 代码 package mainimport fmt// 定义备忘录 type Memento struct {state string }// 查备忘录状态 func (m *Memento) Get() string {return m.state }// 定义发起者 type Originator struct {state string }// 根据发起者状态创建一条备忘录 func (e *Originator) CreateMemento() (memento *Memento) {memento Memento{state: e.state}fmt.Printf(创建一条备忘录%v\n, memento)return memento }// 将发起者状态回滚至指定备忘录状态 func (e *Originator) RollBack(m *Memento) {e.state m.Get()fmt.Printf(发起者状态回滚至:%v\n, e) }// 设置发起者状态 func (e *Originator) Set(state string) {e.state statefmt.Println(发起者状态更改为, e.state) }// 获取发起者状态 func (e *Originator) Get() string {fmt.Println(获取发起者状态为, e.state)return e.state }// 定义管理者管理者是备忘录的聚合 type Caretaker struct {mementoArray []*Memento }// 向管理者中添加一条备忘录 func (c *Caretaker) AddMemento(m *Memento) {fmt.Printf(向管理者中添加一条备忘录%v\n, m)c.mementoArray append(c.mementoArray, m) }// 获取指定备忘录信息 func (c *Caretaker) GetMemento(index int) *Memento {fmt.Printf(获取到第 %d 条备忘录信息为%v\n, index, c.mementoArray[index])return c.mementoArray[index] }func main() {//实例化一个管理者caretaker : Caretaker{mementoArray: make([]*Memento, 0),}//实例化一个发起者originator : Originator{state: A,}//为发起者创建一条备忘录memento0 : originator.CreateMemento()//在管理者中加入该备忘录caretaker.AddMemento(memento0)//改变发起者状态originator.Set(B)//为发起者创建第二条备忘录memento1 : originator.CreateMemento()//在管理者中加入该备忘录caretaker.AddMemento(memento1)//再次改变发起者状态originator.Set(C)//为发起者创建第三条备忘录memento2 : originator.CreateMemento()//在管理者中加入该备忘录caretaker.AddMemento(memento2)fmt.Println(此时管理者应该有三条备忘录)for _, memento : range caretaker.mementoArray {fmt.Printf(%v\n, memento)}fmt.Println(回滚测试)originator.RollBack(caretaker.GetMemento(1))fmt.Println(回滚测试)originator.RollBack(caretaker.GetMemento(0)) }输出 创建一条备忘录{state:A} 向管理者中添加一条备忘录{state:A} 发起者状态更改为 B 创建一条备忘录{state:B} 向管理者中添加一条备忘录{state:B} 发起者状态更改为 C 创建一条备忘录{state:C} 向管理者中添加一条备忘录{state:C} 此时管理者应该有三条备忘录 {state:A} {state:B} {state:C} 回滚测试 获取到第 1 条备忘录信息为{state:B} 发起者状态回滚至:{B} 回滚测试 获取到第 0 条备忘录信息为{state:A} 发起者状态回滚至:{A}2.3 类图 #mermaid-svg-TspkK3aGkMDOsHno {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TspkK3aGkMDOsHno .error-icon{fill:#552222;}#mermaid-svg-TspkK3aGkMDOsHno .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-TspkK3aGkMDOsHno .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-TspkK3aGkMDOsHno .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-TspkK3aGkMDOsHno .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-TspkK3aGkMDOsHno .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-TspkK3aGkMDOsHno .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-TspkK3aGkMDOsHno .marker{fill:#333333;stroke:#333333;}#mermaid-svg-TspkK3aGkMDOsHno .marker.cross{stroke:#333333;}#mermaid-svg-TspkK3aGkMDOsHno svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-TspkK3aGkMDOsHno g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-TspkK3aGkMDOsHno g.classGroup text .title{font-weight:bolder;}#mermaid-svg-TspkK3aGkMDOsHno .nodeLabel,#mermaid-svg-TspkK3aGkMDOsHno .edgeLabel{color:#131300;}#mermaid-svg-TspkK3aGkMDOsHno .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-TspkK3aGkMDOsHno .label text{fill:#131300;}#mermaid-svg-TspkK3aGkMDOsHno .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-TspkK3aGkMDOsHno .classTitle{font-weight:bolder;}#mermaid-svg-TspkK3aGkMDOsHno .node rect,#mermaid-svg-TspkK3aGkMDOsHno .node circle,#mermaid-svg-TspkK3aGkMDOsHno .node ellipse,#mermaid-svg-TspkK3aGkMDOsHno .node polygon,#mermaid-svg-TspkK3aGkMDOsHno .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-TspkK3aGkMDOsHno .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-TspkK3aGkMDOsHno g.clickable{cursor:pointer;}#mermaid-svg-TspkK3aGkMDOsHno g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-TspkK3aGkMDOsHno g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-TspkK3aGkMDOsHno .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-TspkK3aGkMDOsHno .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-TspkK3aGkMDOsHno .dashed-line{stroke-dasharray:3;}#mermaid-svg-TspkK3aGkMDOsHno #compositionStart,#mermaid-svg-TspkK3aGkMDOsHno .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno #compositionEnd,#mermaid-svg-TspkK3aGkMDOsHno .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno #dependencyStart,#mermaid-svg-TspkK3aGkMDOsHno .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno #dependencyStart,#mermaid-svg-TspkK3aGkMDOsHno .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno #extensionStart,#mermaid-svg-TspkK3aGkMDOsHno .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno #extensionEnd,#mermaid-svg-TspkK3aGkMDOsHno .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno #aggregationStart,#mermaid-svg-TspkK3aGkMDOsHno .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno #aggregationEnd,#mermaid-svg-TspkK3aGkMDOsHno .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-TspkK3aGkMDOsHno .edgeTerminals{font-size:11px;}#mermaid-svg-TspkK3aGkMDOsHno :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Originator -string:State CreateMemento() RollBack(m *Memento) Set(state string) Get() Memento -String:State Get() Caretaker []*Memento:mementoArray AddMemento(m *Memento) GetMemento(index int) : Memento
http://www.pierceye.com/news/509117/

相关文章:

  • 网站空间 阿里云wordpress多站点403
  • 下载网站备案的核验单免费ppt模板下载红色
  • discuz 网站备案信息代码温州网站建设优化公司
  • 外国人做汉字网站微网站开发手机模拟器
  • dede做网站网站群 优点
  • 网站制作多久能完成客户管理软件公司
  • 做网站最好的引流推广方法软件
  • 烟台网站建设4038gzs成都建设网上商城平台公司
  • 网站建设费在会计上怎么入账做学校网站的目的
  • 常德网站建设设计下载百度安装
  • 站长平台有哪些广东东远建设工程管理有限公司网站
  • 做蓝牙app的网站跨境电商是不是坑
  • 电子商务网站开发 刘兰娟企业网站建设发展平台
  • 天津做网站得公司游戏界面设计网站
  • 手机网站制作推广网站开发制作培训学校
  • 网站建设需要哪些成本自媒体怎么赚钱
  • 手机怎么访问微网站网站建设市场调研框架
  • 前端网站主题怎么做业务外包的优势和劣势
  • 西安模板网站建设套餐保定seo排名外包
  • 自己做的网站怎么设置文件下载北京朝阳区楼盘
  • h网站建设揭阳网站如何制作
  • phpstudy建设网站教程微信小程序开发需要什么
  • 快手刷评论推广网站网站几个数据库
  • 山东网站建设网站我国网站开发
  • 常见的网站类型有北京电力建设公司待遇
  • 网站分析流程wordpress表单统计插件下载
  • 南宁网站建设公司seo优化武鸣住房和城乡规划建设局网站
  • 在线制作网站门户站模板
  • 邵阳网站建设推广56m做图片视频的网站是什么
  • 如何提高网站的点击率域名空间网站推广