策略与模板方法模式对比 — 软件工程选择题
题目
某订单折扣系统需要支持“会员折扣”“满减折扣”“节日折扣”三种计价方式,且每种方式内部的计价步骤(校验订单→计算折扣→生成凭证)顺序固定、仅“计算折扣”一步因方式而异。关于选用模式及二者的对比,下列说法唯一正确的是:A. 只能用模板方法模式,因为算法骨架固定,且策略模式无法处理部分步骤可变的情况
B. 只能用策略模式,因为算法族需整体封装可替换,模板方法模式要求所有步骤都固定不可变
C. 若整体替换算法用策略模式;若固定骨架、复用公共步骤而仅子步骤可变,用模板方法模式,二者对变化点的封装粒度不同
D. 两种模式本质相同,可任意互换,因为二者都是行为型模式且都封装了算法