策略与模板方法模式对比 — 软件工程选择题
题目
某科研平台有两项设计:甲模块根据用户实时选择的调度规则对象安排计算任务,规则对象可整体替换;乙模块由抽象基类规定“读取任务清单→校验资源→提交任务”的固定顺序,具体平台子类实现其中的资源校验步骤。下列对两种设计的比较,哪项正确?
A. 甲属于模板方法模式,乙属于策略模式;两者都通过子类重写步骤实现算法替换。
B. 甲属于策略模式,乙属于模板方法模式;前者以可替换的算法对象组织变化,后者以继承扩展固定算法骨架。
C. 甲、乙都属于策略模式;只要算法中存在可变化部分,就应将其封装为策略对象。
D. 甲、乙都属于模板方法模式;只要调用端能选择实现,就说明算法骨架由基类控制。