23种设计模式
一直想写一篇介绍设计模式的文章,让读者可以很快看完,而且一看就懂,看懂就会用,同时不会将各个模式搞混。自认为本文还是写得不错的,花了不少心思来写这文章和做图,力求让读者真的能看着简单同时有所收获。
设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。
有一些重要的设计原则在开篇和大家分享下,这些原则将贯通全文:
- 面向接口编程,而不是面向实现。这个很重要,也是优雅的、可扩展的代码的第一步,这就不需要多说了吧。
- 职责单一原则。每个类都应该只有一个单一的功能,并且该功能应该由这个类完全封装起来。
- 对修改关闭,对扩展开放。对修改关闭是说,我们辛辛苦苦加班写出来的代码,该实现的功能和该修复的 bug 都完成了,别人可不能说改就改;对扩展开放就比较好理解了,也就是说在我们写好的代码基础上,很容易实现扩展。
设计原则可以参考另外一篇文章设计模式 - 七大原则
设计模式这里总结了 23 种:
创建型模式,共五种:
工厂方法模式
、抽象工厂模式
、单例模式
、建造者模式
、原型模式
。结构型模式,共七种:
适配器模式
、装饰器模式
、代理模式
、外观模式
、桥接模式
、组合模式
、享元模式
。行为型模式,共十一种:
策略模式
、模板方法模式
、观察者模式
、迭代子模式
、责任链模式
、命令模式
、备忘录模式
、状态模式
、访问者模式
、中介者模式
、解释器模式
。