设计模式(Design Parttern)
我要正儿八经的弄懂设计模式。这是开始,先搞明白的什么是设计模式。
定义
设计模式是一套被 反复使用、多数人知晓、经过分类编目的、代码设计经验的总结。
为什么要用设计模式
为了 可重用 代码,让代码更容易的被他人理解并保证代码的 可靠性。
谁这么叼设计牛模式
四人组( Gang of Four ),简称 GoF ,分别是 Erich Gamma, Richard Helm , Ralph Johnson 和 John Vlissides 。但不是他们设计的,是他们在 95年的时候整理归纳 23 种最常用的设计模式并会变成一本书 Design Patterns: Elements of Reusable Object-Oriented Software 就是:《设计模式:可复用面向对象软件的基础》 。是经过时间的验证的,大家一定要学会。
怎么学
balabala …
设计模式最重要的 4 个元素 模式名称 (Parttern Name)、 问题(Problem) 、 解决方案 (Solution) 、 效果 (Consequences)。
学习设计模式我们就从这 4 个元素出发。一个一个弄清楚它。
- 模式名称 (Parttern Name)
就是这个模式的名字。简单明了的命名。
- 问题 (Problem)
描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因
- 解决方案 (Solution)
该框架的解决方案。就是如何设计这个模式。描述了一个设计模式的组成成分,以及这些组成成分之间的相互关系,各自的职责和协作方式,通常解决方案通过UML类图和核心代码来进行描述。
- 效果 (Consequences)
描述了模式的优缺点以及在使用模式时应权衡的问题 (呈现)
说到这里,你都有啥框架
我们要掌握的应该除了GoF 说的 23 种模式还有加一个 简单工厂模式 (Simple Factory Pattern)也很常用还简单。我顺手就学会了。
来个预览先(参考)
类型 | 模式名称 | 学习难度 | 使用频率 |
创建型模式 Creational Pattern | 单例模式 Singleton Pattern | ★☆☆☆☆ | ★★★★☆ |
简单工厂模式 Simple Factory Pattern | ★★☆☆☆ | ★★★☆☆ | |
工厂方法模式 Factory Method Pattern | ★★☆☆☆ | ★★★★★ | |
抽象工厂模式 Abstract Factory Pattern | ★★★★☆ | ★★★★★ | |
原型模式 Prototype Pattern | ★★★☆☆ | ★★★☆☆ | |
建造者模式 Builder Pattern | ★★★★☆ | ★★☆☆☆ | |
结构型模式 Structural Pattern | 适配器模式 Adapter Pattern | ★★☆☆☆ | ★★★★☆ |
桥接模式 Bridge Pattern | ★★★☆☆ | ★★★☆☆ | |
组合模式 Composite Pattern | ★★★☆☆ | ★★★★☆ | |
装饰模式 Decorator Pattern | ★★★☆☆ | ★★★☆☆ | |
外观模式 Façade Pattern | ★☆☆☆☆ | ★★★★★ | |
享元模式 Flyweight Pattern | ★★★★☆ | ★☆☆☆☆ | |
代理模式 Proxy Pattern | ★★★☆☆ | ★★★★☆ | |
行为型模式 Behavioral Pattern | 职责链模式 Chain of Responsibility Pattern | ★★★☆☆ | ★★☆☆☆ |
命令模式 Command Pattern | ★★★☆☆ | ★★★★☆ | |
解释器模式 Interpreter Pattern | ★★★★★ | ★☆☆☆☆ | |
迭代器模式 Iterator Pattern | ★★★☆☆ | ★★★★★ | |
中介者模式 Mediator Pattern | ★★★☆☆ | ★★☆☆☆ | |
备忘录模式 Memento Pattern | ★★☆☆☆ | ★★☆☆☆ | |
观察者模式 Observer Pattern | ★★★☆☆ | ★★★★★ | |
状态模式 State Pattern | ★★★☆☆ | ★★★☆☆ | |
策略模式 Strategy Pattern | ★☆☆☆☆ | ★★★★☆ | |
模板方法模式 Template Method Pattern | ★★☆☆☆ | ★★★☆☆ | |
访问者模式 Visitor Pattern | ★★★★☆ | ★☆☆☆☆ |
看图得知,这是按照用途分为三种: 创建型(Creational, 结构型(Structural, 行为型(Behavioral 三种。
接下来就按照表格 模式名称这一列顺序一一讲解。学习难度和使用频率并不重要,因为我都要会。
更新中:
1. 什么是设计模式
2. 单例模式
3. 简单工厂模式
这里总是最新的
看完给个star鼓励一下