选择题: 基于面向对象技术的23种设计模式

0 阅读2分钟

设计模式基于面向对象技术,是人们在长期的开发实践中良好经验的结晶,提供了一个简单、统一的描述方法,使得人们可以复用这些软件设计办法、过程管理经验。

按照设计模式的目的进行划分,现有的设计模式可以分为创建型、(1)和行为型三种类型。

其中(2)属于创建型模式,(3)属于行为型模式。

(4)模式可以将一个复杂的组件分成功能性抽象和内部实现两个独立的但又相关的继承层次结构,从而可以实现接口与实现分离。

1234
A 合成型A AdaptorA DecoratorA Prototype
B 组合型B FacadeB CompositeB Flyweight
C 结构型C CommandC MementoC Adapter
D 聚合型D SingletonD BuilderD Bridge

这道题考查的是设计模式的分类和特点。我们逐空分析:

(1)结构型

设计模式按目的分为三大类:

  • 创建型(Creational):关注对象的创建
  • 结构型(Structural):关注类和对象的组合
  • 行为型(Behavioral):关注对象之间的交互和职责分配

所以(1)填 结构型,对应选项 C。


(2)Singleton(单例模式)

创建型模式包括:Singleton(单例)、Factory Method(工厂方法)、Abstract Factory(抽象工厂)、Builder(建造者)、Prototype(原型)。

选项中:

  • Adaptor(适配器)→ 结构型
  • Facade(外观)→ 结构型
  • Command(命令)→ 行为型
  • Singleton(单例)→ 创建型 ✔

所以(2)选 D。


(3)Memento(备忘录模式)

行为型模式包括:Observer、Strategy、Command、State、Chain of Responsibility、Interpreter、Iterator、Mediator、Memento、Template Method、Visitor 等。

选项中:

  • Decorator(装饰器)→ 结构型
  • Composite(组合)→ 结构型
  • Memento(备忘录)→ 行为型 ✔
  • Builder(建造者)→ 创建型

所以(3)选 C。


(4)Bridge(桥接模式)

题干描述:"将一个复杂的组件分成功能性抽象和内部实现两个独立的但又相关的继承层次结构,从而实现接口与实现分离。"

这正是 Bridge(桥接)模式 的定义——将抽象部分与它的实现部分分离,使它们都可以独立地变化。

  • Bridge(桥接)→ 结构型 ✔(正确答案)
  • Prototype → 创建型
  • Flyweight → 结构型(但用于共享对象,不是接口与实现分离)
  • Adapter → 结构型(用于接口转换,不是分离抽象与实现)

所以(4)选 D。


设计模式按目的分为三大类:

类型关注点包含的模式
创建型对象的创建Singleton、Factory Method、Abstract Factory、Builder、Prototype
结构型类/对象的组合结构Adapter、Bridge、Composite、Decorator、Facade、Flyweight、Proxy
行为型对象间的交互与职责分配Command、Interpreter、Iterator、Mediator、Memento、Observer、State、Strategy、Template Method、Visitor、Chain of Responsibility