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

网站开发实训报告参考文献wordpress用户角色权限

网站开发实训报告参考文献,wordpress用户角色权限,oa协同办公系统,豪华网站建设方案文章目录 一.什么是备忘录设计模式?二.备忘录模式的特点三.备忘录模式的结构四.备忘录模式的优缺点五.备忘录模式的 C 实现六.备忘录模式的 Java 实现七.总结 类图: 备忘录设计模式类图 一.什么是备忘录设计模式? 备忘录设计模式&#xff08…

文章目录

  • 一.什么是备忘录设计模式?
  • 二.备忘录模式的特点
  • 三.备忘录模式的结构
  • 四.备忘录模式的优缺点
  • 五.备忘录模式的 C++ 实现
  • 六.备忘录模式的 Java 实现
  • 七.总结

类图: 备忘录设计模式类图

一.什么是备忘录设计模式?

备忘录设计模式(Memento Pattern)是一种行为型设计模式,用于在不暴露对象实现细节的前提下,捕获并保存对象在某一时刻的状态,以便之后可以将其恢复到之前的状态。该模式的主要目标是保存对象的状态并在需要时进行状态回滚。

二.备忘录模式的特点

  1. 封装状态:将对象的内部状态存储在备忘录中,并且不让外部访问这些状态细节。
  2. 提供撤销功能:支持撤销操作,特别适合需要恢复到之前状态的场景。
  3. 降低耦合:发起者(Originator)与管理备忘录的角色(Caretaker)解耦。

三.备忘录模式的结构

  1. Originator(发起者):负责创建备忘录并恢复自身状态。
  2. Memento(备忘录):存储发起者的状态。
  3. Caretaker(管理者):负责保存和恢复备忘录。
    在这里插入图片描述

四.备忘录模式的优缺点

  • 优点:
    • 提供了一种状态恢复机制。
    • 发起者的内部状态对外部透明。
  • 缺点:
    • 可能需要大量的存储空间,尤其是需要存储大量状态时。
    • 如果对象状态过于复杂,可能会增加备忘录的维护成本。

五.备忘录模式的 C++ 实现

#include <iostream>
#include <string>
#include <vector>
using namespace std;// 备忘录类
class Memento {
private:string state;
public:Memento(const string& s) : state(s) {}string GetState() const { return state; }
};// 发起者类
class Originator {
private:string state;
public:void SetState(const string& s) {state = s;cout << "Set state to: " << state << endl;}string GetState() const { return state; }Memento* CreateMemento() const {return new Memento(state);}void SetMemento(Memento* memento) {state = memento->GetState();cout << "Restored state to: " << state << endl;}
};// 管理者类
class Caretaker {
private:vector<Memento*> mementos;
public:void SaveMemento(Memento* memento) {mementos.push_back(memento);}Memento* GetMemento(int index) const {if (index >= 0 && index < mementos.size()) {return mementos[index];}return nullptr;}~Caretaker() {for (Memento* m : mementos) {delete m;}}
};int main() {Originator originator;Caretaker caretaker;originator.SetState("State1");caretaker.SaveMemento(originator.CreateMemento());originator.SetState("State2");caretaker.SaveMemento(originator.CreateMemento());originator.SetState("State3");// 恢复到之前的状态originator.SetMemento(caretaker.GetMemento(0));originator.SetMemento(caretaker.GetMemento(1));return 0;
}

六.备忘录模式的 Java 实现

import java.util.ArrayList;
import java.util.List;// 备忘录类
class Memento {private String state;public Memento(String state) {this.state = state;}public String getState() {return state;}
}// 发起者类
class Originator {private String state;public void setState(String state) {this.state = state;System.out.println("Set state to: " + state);}public String getState() {return state;}public Memento createMemento() {return new Memento(state);}public void setMemento(Memento memento) {this.state = memento.getState();System.out.println("Restored state to: " + state);}
}// 管理者类
class Caretaker {private List<Memento> mementos = new ArrayList<>();public void saveMemento(Memento memento) {mementos.add(memento);}public Memento getMemento(int index) {if (index >= 0 && index < mementos.size()) {return mementos.get(index);}return null;}
}public class MementoPatternDemo {public static void main(String[] args) {Originator originator = new Originator();Caretaker caretaker = new Caretaker();originator.setState("State1");caretaker.saveMemento(originator.createMemento());originator.setState("State2");caretaker.saveMemento(originator.createMemento());originator.setState("State3");// 恢复到之前的状态originator.setMemento(caretaker.getMemento(0));originator.setMemento(caretaker.getMemento(1));}
}

七.总结

 备忘录设计模式适用于需要保存对象状态并提供恢复功能的场景,比如文本编辑器、游戏存档等。通过将状态封装到备忘录中,备忘录模式实现了状态的透明保存与恢复,从而提升了系统的可维护性和灵活性。
应用场景:

  1. 文本编辑器:保存编辑状态,支持撤销和恢复操作。
  2. 游戏存档:保存玩家的游戏进度,并允许玩家恢复到之前的状态。
  3. 事务管理:数据库事务可以利用备忘录模式保存数据状态,实现事务回滚。
http://www.yayakq.cn/news/894918/

相关文章:

  • 做php网站时如何建立数据库登錄wordpress界面
  • 网站改版设计流程helium wordpress
  • 工程建设招标中心网站asp网站怎么下载源码
  • 吉林省建设厅信息网站如何为企业网站设计完整的推广方案
  • 有没有返利网站做京东的网站建设 诺德中心
  • 网站开发的进度控制计划表seo1域名查询
  • 做阿里云网站怎么利用百度云盘做网站
  • apmserv 设置网站目录wordpress简介
  • 北京鑫旺路桥建设有限公司网站一流的五屏网站建设
  • 泰安网站建设方案书什么专业的会做网站
  • 新西兰网站建设橘子seo历史查询
  • 4免费网站建站设计官网有哪些
  • 做网站资源推荐室内效果图用什么软件做最好
  • 建设信用卡商城网站安徽池州网站制作
  • 浙江网站建设品牌北京比较大的软件开发公司
  • 网站建设介绍推广用语wordpress配置页面
  • 网站建设方案编写人天津公司做网站
  • wordpress可以企业网站备案个人可以做视频网站吗
  • asp网站怎么做301定向微信小程序推广佣金
  • 建设校园门户网站方案做网站比较专业的有哪些公司
  • 网站分析欣赏网站框架一般用什么做
  • 大型移动网站开发网站如何添加浮动窗口
  • 申请域名后怎样做网站中企动力企业邮箱手机登录入口
  • 远程教育网站开发把名字设计成logo
  • 技术支持 祥云平台 英文网站3d 网站设计
  • 手机网站开发调用照片自己做网络主播的网站
  • 泰安集团网站建设公司搜索百度指数
  • 电商网站建设课程设计实验报告制作网站素材
  • 做网站公司工资1534939978姐的微信德惠市
  • 厦门网站快照优化公司成品大香伊煮蕉免费在线