命令与状态模式区别 — 软件工程选择题
题目
某智能家居系统中,类 X 将“调高温度”封装为独立请求对象,由遥控器持有并可在队列中排队、撤销;类 Y 在收到“调高温度”调用时,其执行效果取决于当前所处的“制冷/制热”状态,且执行后可能切换到另一状态。下列关于两者所体现的设计模式及其区别的判断,正确的是哪一项?
A. X 体现命令模式,Y 体现状态模式;命令模式侧重将请求封装为对象以便参数化与撤销,状态模式侧重行为随内部状态改变
B. X 体现状态模式,Y 体现命令模式;因为二者都封装了行为,封装方式完全等价,可任意互换
C. X 和 Y 都体现命令模式,因为二者都涉及对象方法的调用
D. X 和 Y 都体现状态模式,因为二者都在运行时改变了系统的行为