设计模式学习方法

广义的设计模式是指一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且提高代码可靠性。

狭义的设计模式是指GoF在《设计模式:可复用面向对象的基础》一书中所介绍的23种经典设计模式。我们无论是在开发工作中,还是在面试笔试中,一般谈起设计模式就是指狭义的设计模式。

当然设计模式不知这23种,任何按照设计模式六大原则进行的设计,或在23种经典设计模式基础上的变种、组合应该都算设计“模式”,模式加引号是因为有些设计应用场景非常狭窄,可能是为了解决一个特定问题所产生的,也并不被大众所熟知。另外,还有一些为大家所熟知的,但是不在23种经典设计模式之中的设计,比如MVC设计模式。

首先声明,博主没有读过原版《设计模式:可复用面向对象的基础 》,也不是什么大牛,我只是一个普通的IT从业者,没有过高的追求,而且还要照顾刚出生不久的小孩。这篇文章是我经过实践后,觉得比较适合上班族用最少的时间,学最多实用内容的攻略。设计模式的作用不多说了,无论是对于平时开发,还是求职都很重要。

介绍设计模式的书很多,我推荐我目前在看的一本:《设计模式的艺术:软件开发人员内功修炼之道》,作者刘伟,清华大学出版社出版。我比较喜欢这本书的案例介绍,适用场景,优缺点。个人手中还有另外一本《HeadFirst设计模式》不是非常推荐。其他书籍没看过,不做介绍。

先介绍一下通用的学习方法:

博主是上班族,也比较懒,毅力很差,空闲时间也不多。有时候想着学点东西,总是半途而废。打比方,之前我学习JVM,买了一本《深入理解Java虚拟机》,啃了两三天,看不太懂,放弃。过后又想学,又拿起来从头啃了两三天,又看不懂,放弃。后来想了一种办法。看完了,而且效果不错,大部分都能看懂。

方法总结起来就是一句话:不要给自己学习的压力,定一个超低的学习目标。展开讲讲,就是在学习之前,不要觉得我在奋进,我要上进,我一定要把它看完,给自己压力很大,第一次给自己加油鼓劲,可能下班后能连续看2个小时。第二天1个小时。第三天半个小时。这样学习,说实话,效果很差,事倍功半,搞得自己疲惫不堪。

读者如果觉得自己不是上面的情况,可以不看这个文章了,您是学霸学神,成长速度会远超常人。我说的这种方法,勉强让自己不被你们落的太远。

回到设计模式的学习上,第一次想学习设计模式,我没有给自己定目标,一口气看了好几个设计模式。看的头昏眼花。当然可能和看得资料有关,我看的《HeadFirst设计模式》。再也没有心情看下去了。

最近这次我给自己定了学习目标,超低的学习目标:每次看一个设计模式,想什么时候看什么时候看,一周看一一次也行。各位看官,你别骂我垃圾,这个方法对于学渣来说,效果出奇的好。看书学习再也不是一种负担,而是变成一种轻松愉快的事情。

特别是对于学习比较吃力的领域,可以循序渐进,慢慢学,不着急。我知道职场竞争激烈,各种优秀的人都在努力奋斗。可是我就是学渣怎么办呢,只能想这种“雕虫小技”了。

第二个方法就是:快速过一遍设计模式,不要细扣代码。 主要做这么几件事:理解主要设计思想、适用场景、优缺点。使用场景和优缺点其实有很大的重复。 大家看我上一篇讲单例模式的文章,就有点细扣了,个人过后总结不是很推荐,等用到的时候再细扣也是可以的。结合上面的学习方法,其实一个模式学下来,分分钟就过去了。一天可以学好几个,但是就和我上面说的,不要看太多,达到目标就可以了,给自己一个奖励。

第三个方法:用思维导图总结,并不断复习。23种设计模式被分为三种类型。按照类型总结每一个设计模式,总结的时候用两三句话描述这个模式的核心。这个是为了复习用的。本次学习的时候,可以把之前学的,复习一遍。看一下总结,看看自己能不能回想起来上次学的模式是什么样子的。

如果你在学习设计模式的时候有一定思考,可能会发现,有些设计模式怎么那么相似。他们之间有什么区别和共同点?这个问题留给大家发现。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  • © 2019 知研片语
  • 京ICP备16042882号