1. 什么是设计模式
设计模式就是前人总结的代码设计的经验。一套描述了在各种经典常见的环境下,通过设计让代码编写变得高效或体现高价值的方法。
设计模式就像兵法,遇到强大的敌人我们适合采用防守的方式,防守的布阵;遇到弱小的敌人,我们适合采用进攻的方式,进攻的布阵。所谓兵法,就是总结了前人的智慧和经验,设计模式也是如此。
学习设计模式是为了让我们更好的行军布阵,在合适的场景使用合适的战术。
但是实际使用的时候,也跟兵法一样,不能纸上谈兵,要根据实际的情况来调整。
2. 设计模式的分类
创建型模式关注对象的创建过程。
关注怎么招兵,怎么买马。我们可以挨家挨户的去叫人,也可以让村长带人过来。目的就是研究怎么把这些对象搞出来,怎么创建对象才更符合我们的需求。
结构型模式关注对象与类的组织。
比如,兵营内的等级结构如何设计才能比较有助于管理,才能有效的做事;打战时,阵型结构该怎么设计,主打进攻的阵型该如何设计,主打防守的阵型该如何设计,针对骑兵的阵型该如何设计,针对步兵的阵型该怎么设计等等等等。目的就是让整个结构更符合我们的需求。
行为模式关注对象之间的交互。
比如哨兵发现了敌人,要让全军的人知道,针对这个目的,我们需要设计一个行为交互模式。
一种方式就是由哨兵敲响警钟,让所有人听到,每个人按照他的职责作出反应。
另一种方式可以由哨兵一级一级的往上报告,直到指挥官知道了,由指挥官发布命令让军队行动,结果可能是一样的,但这样可能就太慢了。
行为模式就是让对象之间的行为更符合我们的需求。
3. 使用设计模式
设计模式就是为了让我们的代码设计更符合我们的需求,符合我们面对的场景。
兵无常势,水无常形。使用什么设计模式要看我们面对的需求,面对的场景是什么样的,不能生搬硬套。
适合自己的才是最好的。
flag
每种具体的设计模式,会在另外的文章介绍,欢迎关注我哟。