如何采用命令模式实现"撤销/恢复"

本文介绍了如何采用命令模式来实现撤销/恢复功能,详细阐述了设计模式的概念、原则和分类,特别是命令模式的定义、角色、优缺点及适用场景。通过示例代码展示了命令模式在人物移动操作中的应用,同时提出了宏命令的概念,并讨论了命令模式在应对大量命令类和数据存储优化方面的挑战。
摘要由CSDN通过智能技术生成

前言:现在大部分优秀的编辑器都带有 "撤销/恢复"功能。这个功能就是相当于传说中的”后悔药“,方便大家随时切换到以前的某一个点。


为了寻找“后悔药”,我们也开始了该功能的探索之旅。本文主要考虑的方法是采用命令模式实现该功能的思路!

 

mweb


xcode



美图

一、设计模式的一些术语


1、设计模式定义


设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。


使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。


设计模式对一类问题提供了相应的解决方案,所以使用上与问题场景紧密结合。


2、设计原则


  • 单一职责原则

一个类只做一件事,引起它变化的原因只有一个。

尽量避免修改一个功能时,影响太多其他的东西,这个原则的划分细粒度是一个难点,只能通过工作经验的积累才能过更好的应用

 

  • 开闭原则

即对扩展开放,对修改关闭

提供良好的可扩展性,维护性。比如:创建一个图形基类,再创建一个方形,圆形,如果要新增别的图形,只需要新增一个类就要,不影响其他现有的功能和代码

 

  • 里氏代换原则

即子类可以代替父类的全部功能。反过来就不行

比如写了一个鸟类,有会飞的功能,再写一个鸵鸟,集成这个鸟类,会飞的功能,就违反了这个原则

 

  • 依赖倒转原则

即高层代码不应该依赖于底层代码,而应该依赖于接口,即面向接口编程。

我们的pc电脑,在设计USB 模块的时候,应该是要遵循usb2.0,3.0的接口编程,而不是为具体的u 盘,或者厂家的u 盘做专门的设计

 

  • 接口隔离原则

使用多个隔离的接口,比使用单个接口要好。

降低耦合,方便维护,避免,集成后,执行很多不用的方法

 

  • 合成/聚合复用原则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值