竹迩带你玩懂设计模式(2)-设计模式一览
我经常说,学习一定要从上而下高屋建瓴的学习,所以关于设计模式,我们的GoF一共总结出来了23种,那我们就要先知道到底有哪23种设计模式,这23种设计模式直接有什么关系,找到内在的一些联系,才更有助于进行我们的学习;这也是我经常会跟大家所讲的学习的冰山模型。
整个知识体系是很庞大的,由很多个技术点组成我们的完整的学习,就像有很多座冰山我们要去消化,这是我们所谓的学习的水平维度,我们学习的广度;但是其实每座冰山在海平面下还有我们所谓的垂直领域,我们学习的深度;而且越往下,你会发现每一个技术点之间都是关联在一起的,已经分不清谁属于谁,所以我说我们要高屋建瓴的学习,其实是要求我们要先从海平面上的露出尖尖角的冰山开始融化,这是最容易理解也是切合我们的实际基于应用的,同时也是代表了我们学习的体系。
对于我们学习设计模式,也是同一个道理。我们先将露出尖尖角的涉及模式的整体有一个了解,然后回到每个设计模式本身,去加深我们应用的深度。
----------------------我是技术的分割线-----------------------------------------
回到设计模式一览,23种设计模式一共分为三大类(给大家一点好玩的图来加深印象):
就像建房子一样创建对象;
对象之间是有关系滴,就像都是房子,但是细化下来又有城堡、小木屋等,有各种各样的房子,就是城堡也是由各个房子组成的;
每个房子有不同的作用,有不同的功能;
创建对象、对象之间建立关系、对象干活,这就是我们设计模式的三大分类,下表是具体的设计模式对应的分类,在后面的文章中,我们将逐步去了解每一个设计模式,也就是慢慢的将这些冰山融化。
范围 |
创建型 |
结构型 |
行为型 |
对象创建 |
Singleton(单例) Prototype(原型) Factory Method(工厂方法) Abstract Factory(抽象工厂) Builder(建造者) |
|
|
接口适配 |
|
Adapter(适配器) Bridge(桥接) Façade(外观) |
|
对象去耦 |
|
|
Mediator(中介者) Observer(观察者) |
抽象集合 |
|
Composite(组合) |
Iterator(迭代器) |
行为扩展 |
|
Decorator(装饰) |
Visitor(访问者) Chain of Responsibility(职责链) |
算法封装 |
|
|
Template Method(模板方法) Strategy(策略) Command |
性能与对象访问 |
|
Flyweight(享元) Proxy(代理) |
|
对象状态 |
|
|
Memento(备忘录) State(状态) |
其它 |
|
|
Interpreter(解释器) |