1. 前言
有人说过这么一句话“设计模式是可复用面向对象软件的基础”,也就是说设计模式可以让代码复用性更高。学习设计模试是每个程序员从菜鸟走向大神的必经之路,巧妙地运用设计模式可以使我们的代码看似复杂实际简洁、复用性更高、更容易被别人理解等好处,同时也是学习软件工程的基础和必然。其实很多框架像SSH都是设计模式的良好体现,SUN的JDK也到处都是设计模式,建议多看看源码。在未来的一段时间内,我会在博客更新的文章里讲解每种设计模式,并用Java语言举例子,因为本人是Java程序员。吼吼~~
我一直认为用代码诠释设计模式可以帮助我们更好地理解设计模式的本质,先看一大篇理论搞不好只会把自己弄晕,每篇设计模式的讲解可能篇幅不多,但都是精华,看过了、思考了、代码敲过了、几种模式混淆了、再对比了、再思考了、有了独特见解了,那才是真正意义上理解了设计模式的本质。
2. 设计模式的分类
GoF(四人帮)说了23种设计模式,分为三大类。创建型模式,共5种:
工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共7种:
适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共11种:
策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
3. 我眼中的设计模式
对于设计模式务必要从整体结构上、从本质目标上、从思想体现上来把握,而不要从局部、从表现、从特例实现上来把握,这点相当重要。我对设计模式的认识总结了下面4点:(1)设计模式是解决问题的思想,它只是思想。
(2)写代码时不用特意追求设计模式。
(3)框架基本上都是设计模式的良好体现。
(4)在Java上有一些设计模式几乎是完全用不上,比如解释器模式。