Skip to content

考点清单

  • [x] 设计模式层次(架构模式/设计模式/惯用法)
  • [x] 创建型模式(单例/工厂方法/抽象工厂/建造者/原型)
  • [x] 结构型模式(适配器/桥接/组合/装饰/外观/享元/代理)
  • [x] 行为型模式(观察者/策略/模板方法/命令/状态/责任链/迭代器/中介者/备忘录/解释器/访问者)
  • [x] 桥接模式详解

笔记

一、设计模式层次

层次说明粒度
架构模式软件系统整体结构,高层模式
设计模式子系统或组件的设计方案
惯用法特定语言相关的编程技巧

二、三大类设计模式总览 ★

创建型模式(5种)

模式核心思想一句话
单例(Singleton)一个类仅有一个实例,提供全局访问点唯一实例
工厂方法(Factory Method)定义创建对象的接口,子类决定实例化哪个类子类决定创建什么
抽象工厂(Abstract Factory)创建一系列相关对象,无需指定具体类产品族
建造者(Builder)复杂对象的构建与表示分离分步构造
原型(Prototype)通过复制现有对象创建新对象克隆

口诀:单原建,工抽分。(单例/原型/建造者/工厂方法/抽象工厂)

结构型模式(7种)

模式核心思想一句话
适配器(Adapter)将接口转换为客户期望的另一个接口接口转换
桥接(Bridge)抽象与实现分离,独立变化多维变化分离
组合(Composite)将对象组成树形结构,统一处理单个对象和组合部分-整体
装饰(Decorator)动态给对象添加额外职责包装增强
外观(Facade)为子系统中的一组接口提供统一入口简化接口
享元(Flyweight)共享大量细粒度对象,减少内存占用共享复用
代理(Proxy)为其他对象提供代理以控制访问控制访问

口诀:适桥组装外享代。

行为型模式(11种)

模式核心思想一句话
观察者(Observer)一对多依赖,一对象状态变化通知所有依赖者发布-订阅
策略(Strategy)定义一系列算法,可相互替换算法族
模板方法(Template Method)定义算法骨架,子类重定义某些步骤骨架不变子类填空
命令(Command)将请求封装为对象,支持撤销/排队请求封装
状态(State)对象行为随内部状态改变状态决定行为
责任链(Chain of Responsibility)多个对象处理同一请求,形成链条传递处理
迭代器(Iterator)顺序访问集合元素而不暴露内部表示遍历
中介者(Mediator)用中介对象封装一系列对象交互中心协调
备忘录(Memento)捕获对象内部状态,支持撤销快照/回滚
解释器(Interpreter)定义语言文法并解释执行语法解释
访问者(Visitor)在不改变元素类的前提下定义新操作操作分离

口诀:观策模命状,责迭中备解访。


三、桥接模式详解 ★

桥接模式将抽象部分与它的实现部分分离,使它们可以独立变化。是比多重继承更好的解决方法(多重继承违背单一职责原则)。

四个角色:

角色作用
Abstraction(抽象类)定义抽象类接口,维护 Implementor 指针
RefinedAbstraction(扩充抽象类)扩充由 Abstraction 定义的接口
Implementor(实现类接口)定义实现类接口,提供基本操作(可与 Abstraction 完全不同)
ConcreteImplementor(具体实现类)实现 Implementor 接口的具体实现

Abstraction 定义高层操作(基于基本操作),Implementor 仅提供基本操作。二者接口可以完全不同,独立变化。