自己动手设计代码编辑器——(三)撤销与重做

这篇博客介绍了如何利用设计模式中的‘命令模式’来实现代码编辑器中的撤销与重做功能。通过定义两个接口,将可撤销的操作封装为类,并在Coder类中调用CodeManager的函数来执行这些操作。通过简单的测试,展示了如何在实际应用中输入、撤销和重做代码。此外,还扩展了删除字符的命令,以增强编辑器的功能。
摘要由CSDN通过智能技术生成

谈到代码编辑器,基本功能的“撤销与重做”是必不可少的。


刚好最近看了设计模式的“命令模式”,做这个倒是正好


简单来说,就是把所以可以撤销的方法封装成类


这里有个简单的测试例子,演示了用“命令模式”实现的“撤销”功能


这里是两个基本接口

// 命令接口,所有能被编辑器接受命令都从这里继承
public interface ICommand
{
		void Execute();
}

// 可撤销的命令借口,所有可撤销的命令都从这里继承
public interface IUndoCommand : ICommand
{
	void Undo();
}

接下来是具体的命令

// 插入一个字符到编辑器的命令
public class InsertCharacterCommand : IUndoCommand
{
		private CodeManager codeManager;
		private int index;
		private char ch;
		
		public InsertCharacterCommand(CodeManager setCodeManager, int setIndex, char setCh)
		{
			this.codeManager = setCodeManager;
			this.index = setIndex;
			this.ch = setCh;
		}
		
		public void Execute()
		{
			codeManager.InserC
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值