0%

设计模式

1. 设计模式

使用设计模式的目的是为了解决问题, 致力于找到最能解决问题的简单方案, 不要让模式影响设计的决策.

学习设计模式时需要了解每个设计模块使用的对象的属性与行为.

设计模式可以划分为 3 类:

1.1. 创建型

各种创建对象的方式.

1.2. 结构型

为了保持原有类型结构不变, 或者为了实现特定的类型结构.

1.3. 行为型

为了实现特定的交互方式.

2. 区别

2.1. 策略模式 vs 状态模式

都是行为型设计模式
状态模式用于解决状态转移的问题, 当状态发生转移了, 那么对象就会改变它的行为;
策略模式用于封装一组可以互相替代的算法族, 并且可以根据需要动态地去替换使用的算法.

3. 代理模式 vs 访问者模式 vs 中介模式

代理模式是结构型设计模式, 用于需要控制对象访问的情况;
访问者模式是行为型设计模式, 将数据的结构与操作相分离, 用于数据结构文档, 但操作复杂多变的情况.
中介模式也是是行为型设计模式, 通过一个公共对象来维护多个对象之间的关系, 降低系统耦合.

4. 工厂方法模式 vs 抽象工厂模式 vs 享元模式

工厂方法模式是创建型设计模式, 用于创建相同抽象类型, 且创建过程比较复杂的情况;
抽象工厂模式也是创建型设计模式, 用于创建对象家族, 模式中使用到了工厂方法模式;
享元模式是结构型设计模式, 通过工厂模式创建对象, 并将他们缓存起来, 防止重复创建.

5. 适配器模式 vs 桥接模式 vs 外观模式

都是结构型设计模式
适配器模式用于将接口转换成另一种需要的接口;
桥接模式将抽象部分与实现部分分离, 使它们可以独立变换, 也就是通过组合代替继承, 防止继承带来类爆炸.
外观模式将多个不同功能的接口再次抽离出需要的功能, 隔离系统内部的复杂性, 让使用更加简单.

6. 责任链模式 vs 观察者模式

都是行为型设计模式, 都是将发送者与接受者解耦.
责任链模式将请求转发给责任链, 寻找合适的接受对象处理.
观察者模式将请求转发给所有接受者.

7. Resource