工作这么多年,以前也接触过多次设计模式,但终归是用到后才去分析,没有形成体系。市面上设计模式的书籍质量也参差不齐,阎宏那本《java与模式》不错,但有故弄玄虚之感。最近看到《研磨设计模式》一书,开始是从书评得到此书不错,后来看到作者的博客,初看了几个模式的讲解,受益非浅。很多模式的原理讲得通透,应用案例也有极强的针对性。个人认为是学习设计模式非常好的教程。所以作为一个系列,进行专门的学习。闲言休表,且看第一回:

     第1章  设计模式基础

1.1  设计模式是什么

1.1.2  设计模式的概念

    设计模式,是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。

    个人理解:《葵花宝典》也是一个设计模式。解决了第三种人类(特定环境)想称霸江湖的问题,经过岳掌门舍身验证,对于某些男士也很适用。

1.1.3  设计模式的理解

  •     设计模式是解决某些问题的办法。
  •     设计模式不是凭空想象出来的,是经验的积累和总结。
  •     设计模式并不是一成不变的,而是在不断发展中。
  •     设计模式并不是软件行业独有的,各行各业都有自己的设计模式。

 

1.2  设计模式有什么

1.2.1  设计模式的组成

    在描述单个设计模式的时候,设计模式通常由以下部分组成。

  •     模式名称:就是为每个设计模式取的名字,好记忆,也好交流。
  •     环境和问题:描述在什么场景下,出现什么样的特定的问题。
  •     解决方案:描述如何解决这个问题。
  •     效果:描述模式应用的效果,以及可能带来的问题,或者使用中需要权衡

            的 问题。

1.2.2  设计模式的分类

     GOF(四人组,注意与万恶的四人帮区别)把它们分为三类:

  •     创建型模式:抽象了对象实例化的过程,用来帮助创建对象的实例。
  •     结构型模式:描述如何组合类和对象以获得更大的结构。
  •     行为型模式:描述算法和对象间职责的分配。