设计模式春招面试复习-命令模式
2021设计模式春招面试复习命令模式 0源码地址定义与类型适用场景优点缺点相关模式备忘录模式经常结合使用coding典型应用是GUI中的绘图程序, 用命令模式实现“撤销”操作.· 命令接收者:执行实际任务。· 命令者:封装所有命令者的信息。· 发起者:空着一个或者多个命令的顺序和执行。· 客户端:创建具体的命令实例public class DrawInvoker /绘制列表 private List<DrawPath> drawList = Collections.synchronizedList(new ArrayList<DrawPath>(); /重做列表 private List<DrawPath> redoList = Collections.synchronizedList(new ArrayList<DrawPath>(); /添加一条命令 public void add(DrawPath command) redoList.clear(); drawList.add(command); /撤销操作 public void undo() if(drawList.size() >0 ) DrawPath undo = drawList.get(drawList.size() - 1); drawList.remove(drawList.size() - 1); / 把drawList中的最后一条命令删除掉. undo.undo(); redoList.add(undo); “撤销”上一步操作的实现原理是, 首先记录每一条绘制命令到drawList中, “撤销”操作就是把最后一条命令从drawList中删除, 然后把canvas清空, 把drawList中的命令在清空的canvas上再绘制一遍. -全文完-