在不指定具体类的情况下,为创建一系列相关或相互依赖的对象提供一个接口的模式是( )。
单选题
在不指定具体类的情况下,为创建一系列相关或相互依赖的对象提供一个接口的模式是( )。
A. Prototype
B. Abstract Factory
C. Builder
D. Singleton
答案:B
解析
正确答案:B. Abstract Factory(抽象工厂)
抽象工厂模式提供一个接口,用于创建一系列相关或相互依赖的对象,而客户端无需指定具体类。它把“产品族”的创建封装起来,便于替换整套实现。
- A. Prototype:通过克隆现有对象创建新对象,关注对象复制,不负责产品族接口。
- C. Builder:分步构建复杂对象,强调构建过程与表示分离,不用于创建一系列相关对象。
- D. Singleton:保证一个类只有一个实例并提供全局访问,与产品族创建无关。
考点延伸:抽象工厂常与工厂方法对比。工厂方法通常创建单一产品;抽象工厂创建多个产品等级构成的产品族。新增产品族较容易,但新增产品等级需修改抽象工厂及所有具体工厂,可能影响开闭原则。