软件工程 选择题 标准 ★ 精品

重构常用手法与模式引入 — 软件工程选择题

软件设计模式 模式综合应用与重构 AI 三重审校通过

题目
某报表模块中,ReportGenerator.generate() 方法长达 200 行,内部先拼接 XML 字符串生成报表,再硬编码调用不同的统计函数;随着需求变化,还需支持 JSON 输出,开发者发现 generate() 中'组织数据'与'输出格式'两个变化维度交织在一起。下列重构手法与模式引入的组合,最符合'先改善结构、再用模式分离变化方向'原则的是( )A. 直接在 generate() 中再增加一层 if-else 判断输出格式,避免改动类结构 B. 先用提取方法将数据组织与格式输出拆为独立方法,再引入桥接模式分离数据维度与格式维度 C. 将整个 generate() 复制为 generateJSON(),两份代码各自维护 D. 用单例模式包裹 ReportGenerator,使全局只有一个生成器实例