一:
意图: 将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以支持可撤销的操作。
用途: 1、接口回调。Command模式是回调机制的一个面向对象的替代品。
2、在不同时刻指定,排列和执行请求。
3、支持Undo/Redo操作。
4、支持修改日志。
5、 支持事务操作。
二:代码实现
三:测试代码
CUndoManager* m_pUndoManager = new CUndoManager();
m_pUndoManager->pushCommand(CComandHelper::CreateCmd<CShapeCreateCommand>());
m_pUndoManager->pushCommand(CComandHelper::CreateCmd<CShapeCreateCommand>());
m_pUndoManager->undo();
m_pUndoManager->undo();