设计模式学习之命令模式

命令模式的主要用途是中小型项目的撤销重做功能。它由四个部分组成:

1.command基类,定义execute()方法、undo()方法的纯虚函数接口;

2.receiver类,也就是命令接收者,或者说真正的数据核心。它可以定义多个函数,而这些函数就是每个命令子类的操作对象,通常一个命令子类会接管一组相关的函数,例如加减、乘除,以便对应execute()和undo()函数;

3.concretecommand类,也就是命令子类。它有三个特性,首先以receiver作为成员变量或者普通变量;第二重写基类的虚函数,并且这些虚函数都以receiver类的一组相关函数作为操作对象;第三它需要记录函数执行前的状态,例如执行加法后,要保存执行前的数据,以便执行undo的时候能够回撤;

4.invoker类,也就是管理类,这个类会有一个撤销栈和一个重做栈。它也包含execute()方法、undo()方法,这两个方法都是以command作为参数,执行他们的execute()方法、undo()方法,同时往栈内压如command,作为历史记录。通常还可以有一个redo()方法,用于反撤销。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值