综合案例中模式协作 — 软件工程选择题
题目
某流程编排工具允许用户连续添加、删除节点,并逐步撤销操作;撤销时必须精确恢复操作前的节点及其连接状态。重构要求:界面不依赖具体操作类,操作可独立排队执行,且状态快照不向界面暴露内部结构。下列哪种模式协作方案最符合要求?
A. 工厂根据界面请求创建具体命令;命令封装操作并在执行前请求流程对象生成备忘录,撤销时交由流程对象恢复;备忘录封装快照
B. 工厂根据界面请求创建具体备忘录;备忘录执行节点操作并维护队列;命令仅保存操作前的流程快照
C. 流程对象直接创建并执行节点操作;界面将每次操作后的完整流程状态存入命令对象,撤销时由界面重建流程
D. 工厂根据界面请求创建具体命令;命令执行后由备忘录直接修改流程内部节点,撤销时命令重放原操作