肖哥弹架构 跟大家"弹弹" 业务中设计模式的使用,需要代码关注
欢迎 点赞,点赞,点赞。
关注公号Solomon肖哥弹架构获取更多精彩内容
开发一款角色扮演游戏(RPG)时,需要一个系统来保存玩家的游戏进度,包括角色的位置、状态、装备和任务进度等,以便玩家可以加载之前的存档继续游戏。
2. 为什么要使用备忘录设计模式
备忘录模式允许游戏状态的保存和恢复,使得玩家可以自由地进行游戏存档和读档操作,而不会影响当前的游戏逻辑。
3. 标准备忘录设计模式图
4. 业务备忘录设计模式图
5. 业务代码参考
java
// 游戏角色状态
class PlayerStatus {
// 角色状态属性
}
// 游戏项目(如武器、装备等)
class Item {
// 项目属性
}
// 游戏状态
class GameState {
private Vector playerPosition;
private PlayerStatus playerStatus;
private List<Item> equipment;
private Map<String, Boolean> questProgress;
// 构造函数、getter 和 setter
public String getState() {
// 转换游戏状态为字符串形式,用于存储
return "状态信息";
}
}
// 游戏类
class Game {
private GameState currentState;
public GameState saveGame() {
// 保存当前游戏状态
return new GameState(currentState); // 复制当前状态
}
public void loadGame(GameState gameState) {
// 从存档中恢复游戏状态
this.currentState = gameState;
}
}
// 存档管理器
class SaveManager {
private Stack<GameState> saves = new Stack<>();
public void saveState(GameState gameState) {
saves.push(gameState);
}
public GameState loadLastState() {
return saves.isEmpty() ? null : saves.pop();
}
}
// 客户端使用
class GameApp {
public static void main(String[] args) {
Game game = new Game();
SaveManager saveManager = new SaveManager();
// 玩家进行一系列操作后,决定保存游戏
GameState savedState = game.saveGame();
saveManager.saveState(savedState);
// 玩家退出游戏或读取存档
GameState loadedState = saveManager.loadLastState();
if (loadedState != null) {
game.loadGame(loadedState);
// 游戏继续从存档状态进行
}
}
}
6. 使用备忘录设计模式的好处
- 状态管理:允许游戏在不同时间点保存和恢复状态。
- 灵活性:玩家可以随时保存和加载游戏,提高了游戏体验。
7. 其他使用备忘录设计模式场景参考
- 图形设计软件:保存设计的不同版本。
- 文档编辑:实现文档的版本控制。
总结
- Git:虽然不是直接使用备忘录模式,但Git的版本控制思想与备忘录模式相似。
结论
备忘录模式为游戏存档系统提供了一种有效的方法来保存和恢复游戏状态,增强了游戏的可玩性和用户体验。
历史热点文章
- 外观模式(Facade Pattern):微服务架构中的数据库访问实战案例分析
- 代理模式(Proxy Pattern):权限校验API调用实战案例分析
- 桥接模式(Bridge Pattern):多样式用户界面组件实战案例分析
- 组合模式(Composite Pattern): 在线教育平台课程管理实战案例分析
- 享元模式(Flyweight Pattern):网页游戏中的角色对象管理实战案例分析
- 观察者模式(Observer Pattern):股票交易系统实战案例分析
- 策略模式(Strategy Pattern):电商平台的优惠券系统实战案例分析
- 模板方法模式(Template Method Pattern):视频播放应用实战案例分析
- 命令模式(Command Pattern):网络爬虫任务队列实战案例分析
- 迭代器模式(Iterator Pattern):电商平台商品分类浏览实战案例分析
- 中介者模式(Mediator Pattern):即时通讯软件实战案例分析
- 备忘录模式(Memento Pattern):游戏存档系统实战案例分析
- 状态模式(State Pattern):电商平台订单状态管理实战案例分析
- 责任链模式(Chain of Responsibility Pattern):电商平台的订单审批流程实战案例分析
- 访问者模式(Visitor Pattern):电商平台商品访问统计实战案例分析
- 工厂方法模式(Factory Method Pattern): 电商多种支付实战案例分析
- 抽象工厂模式(Abstract Factory Pattern):多风格桌面应用实战案例分析
- 建造者模式(Builder Pattern): 在线订单系统实战案例分析
- 原型模式(Prototype Pattern): 云服务环境配置实战案例分析
- 适配器模式(Adapter Pattern):第三方支付集成实战案例分析
- 装饰器模式(Decorator Pattern):电商平台商品价格策略实战案例分析
- 单例模式(Singleton Pattern):购物车实战案例分析