一、掌握设计模式的层次

1)第一层:刚开始学编程不久,听说过什么是设计模式

2)第二层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道。

3)第三层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的。

4)第四层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的好处。

5)第五层:代码写着写着,自己都没有意识到使用了设计模式,并且熟练的写了出来。

二、设计模式介绍

1)设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design Pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

2)设计模式的本质:提高了软件的维护性、通用性和扩展性,并降低了软件的复杂度。

3)《设计模式》是经典的书,作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design(俗称“四人组 GOF ”)。

4)设计模式并不局限于某种语言,java、php、c++都有设计模式。

三、设计模式的类型

设计模式分为三种类型,共 23 种。

1)创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。

2)结构性模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

3)行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter 模式)、状态模式、策略模式、职责链模式(责任链模式)。

注意:不同的书籍对分类和名称略有差别