复杂度无法被消除, 只能被转移.
总共有23种设计模式, 它们可以分为以下三类:
- 创建性
- 结构性
- 行为型 这三类又分别有以下几种模式:
- 创建型
- [[Blog-Posts/coding/design/单例模式]]
- [[Blog-Posts/coding/design/工厂模式]]
- [[Blog-Posts/coding/design/建造者模式]]
- [[Blog-Posts/coding/design/原型模式]]
- 结构性
- [[Blog-Posts/coding/design/代理模式]]
- [[Blog-Posts/coding/design/桥接模式]]
- [[Blog-Posts/coding/design/装饰器模式]]
- [[Blog-Posts/coding/design/门面模式]]
- [[Blog-Posts/coding/design/组合模式]]
- [[Blog-Posts/coding/design/享元模式]]
- 行为型
- [[Blog-Posts/coding/design/观察者模式]]
- [[Blog-Posts/coding/design/模板模式]]
- [[Blog-Posts/coding/design/策略模式]]
- [[Blog-Posts/coding/design/职责链模式]]
- [[Blog-Posts/coding/design/状态模式]]
- [[Blog-Posts/coding/design/迭代器模式]]
- [[Blog-Posts/coding/design/访问者模式]]
- [[Blog-Posts/coding/design/备忘录模式]]
- [[Blog-Posts/coding/design/命令模式]]
- [[Blog-Posts/coding/design/解释器模式]]
- [[Blog-Posts/coding/design/中介模式]]
代理、桥接、装饰器、适配器4种设计模式的区别
这4种是比较常见的结构型设计模式, 它们的代码结构非常相似. 笼统来说, 它们都可以被称为Wrapper模式, 也就是通过Wrapper类二次封装原始类.
尽管代码结构相似, 但是这4种设计模式的用意完全不同, 也就是说要解决的问题, 应用场景.
代理模式: 代理模式在不改变原始类接口的条件下, 为原始类定义一个代理类, 主要目的是控制访问, 而为加强功能.
桥接模式: 桥接模式的目的是将接口和实现分离, 从而让它们可以较为容易、也相对独立的加以改变.
装饰器模式: 装饰器模式在不改变原始类接口的情况下, 对原始类功能进行增强, 并且支持多个装饰器的嵌套使用.
适配器模式: 适配器模式是一种事后的补救策略. 适配器提供跟原始类不同的接口, 而代理模式, 装饰器模式提供的都是跟原始类相同的接口.