设计模式描述了一个出现在特定设计语境中的设计再现问题,并为它的解决方案提供了一个经过充分验证的通用方案,不同的设计模式关注解决不同的问题。例如,抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象, 而无需指定它们具体的类,它是一种 (问题1) 模式; (问题2) 模式将类的抽象部分和它的实现部分分离出来,使它们可以独立变化,它属于 (问题3) 模式; (问题4) 模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。
本题考察的是设计模式的分类及其典型应用场景。
设计模式分为创建型、结构型和行为型三大类,各自有不同的关注点和应用方法。
问题1:
A选项组合型:并不是GoF设计模式的正式分类,错误。
B选项结构型:结构型模式主要关注类和对象的组合,不适合用来描述抽象工厂模式,错误。
C选项行为型:行为型模式关注对象之间的职责分配与交互,不适合抽象工厂的场景,错误。
D选项创建型:创建型模式关注对象的创建过程,抽象工厂模式正是用于创建一系列相关对象的接口,正确。
所以选择 D。
问题2:
A选项Bridge:桥接模式用于将抽象与实现分离,使二者可以独立变化,符合题干描述,正确。
B选项Proxy:代理模式用于控制对对象的访问,不是分离抽象与实现的方案,错误。
C选项Prototype:原型模式用于通过克隆创建对象,错误。
D选项Adapter:适配器模式用于接口转换,不是抽象与实现分离,错误。
所以选择 A。
问题3:
A选项组合型:不是标准分类,错误。
B选项结构型:桥接模式属于结构型模式,因为它处理的是类或对象结构的组合与扩展,正确。
C选项行为型:错误。
D选项创建型:错误。
所以选择 B。
问题4:
A选项Command:命令模式将请求封装为对象,可参数化客户请求、排队、记录日志并支持撤销,完全符合题干描述,正确。
B选项Facade:外观模式用于简化子系统接口,错误。
C选项Memento:备忘录模式用于保存对象状态,错误。
D选项Visitor:访问者模式用于在不改变对象结构的前提下添加操作,错误。
所以选择 A。
