都说设计模式很重要,但是对于一个刚入门经验不足的新手,如何有效的学习设计模式,请大神们指教一二?
光阴似箭催人老,日月如移越少年。
光看书并不能让你成为精通设计模式的人,更别说能马上应用到实际项目建议多读读开源代码,体会别人的代码中是如何应用设计模式的,实际上真正使用的设计模式,往往是23中设计模式的变体,并非一味对着书本就可以。JDK源码就是不错的学习设计模式的资料通过java.io.*,可以学习装饰者模式通过jdbc的api,可以学习到桥接模式看java里Proxy的代码,可以学到代理模式等等...
java.io.*
推荐先读这本《大话设计模式》,先搞明白为什么要用设计模式。
这个是需要经验积累的,平时一点点的思考、应用和改进,不要为了使用设计模式而照猫画虎的搬。
简单来说,设计模式就是一些解决常见问题的方法总结。注意我说的是常见问题,而我们的需求往往是复杂多样的,所以往往都是多种设计模式一起用,或者根据自己的需要变通的做,不一定死照着模式的方法去做。
优雅、高效、实用,是我们追求的,所以设计模式很重要,它让我们更抽象的思考问题。
现在买了一本《Head First 设计模式》。。同新手,,先看这本熟悉下吧。。
先告诉你为什么重要:
一些主流框架里都使用了很多的设计模式,不懂设计模式去了解框架原理的时候会很吃力
减少代码冗余度,使代码易于扩展等
再谈谈书本吧:
《大话设计模式》还成,里面的语言是C#,然而C#和Java很像
《设计模式之禅(第2版)》这本书我翻了一下,感觉还不错,用Java写的
图解系列的最新书籍——《图解设计模式》,图解系列对新手是非常友好的,也是用Java写的,推荐
当然,你也可以去慕课网看一点关于设计模式的视频。讲得还算可以。
然后你要做的是去多写代码,并思考哪些代码可以用哪些设计模式,不要凭空想像,要运用于实战,纸上谈兵是不可取的。
没有大量代码实践, 认真思考
学习设计模式, 犹如设计「空中楼阁」
看看示例,写个示例,好像这是学习Coding普遍方法。
这里有个教程介绍了各个模式并给出了示例。尝试自己另外找一个情形应用这些模式吧。当然也不能过度使用,To A Man with a Hammer, Everything Looks Like a Nail.
设计模式就是使用中一些经验的总结,能够解决特定背景下的问题。
首先要理解其能解决什么问题?如何解决的?优缺点? 自己写几个小例子,之后可以看下Java类库中的设计模式的使用,开源框架中设计模式的使用。
总之,多看多写多思考。
刚入门的新手不要去学设计模式,你还有更重要的东西要去学。你要先熟悉你用的语言,再熟悉你用的框架类库的用法,再积累一定的代码量,然后再来学习设计模式。
思想是建立在语言的基础上的,不精通语言,思想如同空中楼阁。
慕课网有个大话php设计模式我觉得讲的还是很明白的,用了很多例子,你会发现其实你自己在编码过程中经常无意间就用到了各种设计模式。
如果你有代码实现,可以学习一下,否则等积累一定经验再来学,不然就是闭门造车,就算学了你也不知道用在什么地方,什么时候写工厂好点?什么时候用观察者模式好点?看了二十几年A片,不如你真正上那么一次床,所以你在开发经验不足的情况下,空有理论也没用,除非你能把模式直接用在你现在正在做的代码里,否则你就简单了解一下,等真正需要时候能想起来有这种东西可能可以用到,到时候再详细去研究,到那种情况,XXX情况下用不用模式就会是你需要思考的第二个问题了
光看书并不能让你成为精通设计模式的人,更别说能马上应用到实际项目
建议多读读开源代码,体会别人的代码中是如何应用设计模式的,实际上
真正使用的设计模式,往往是23中设计模式的变体,并非一味对着书本就
可以。JDK源码就是不错的学习设计模式的资料
通过
java.io.*
,可以学习装饰者模式通过jdbc的api,可以学习到桥接模式
看java里Proxy的代码,可以学到代理模式
等等...
推荐先读这本《大话设计模式》,先搞明白为什么要用设计模式。
这个是需要经验积累的,平时一点点的思考、应用和改进,不要为了使用设计模式而照猫画虎的搬。
简单来说,设计模式就是一些解决常见问题的方法总结。注意我说的是常见问题,而我们的需求往往是复杂多样的,所以往往都是多种设计模式一起用,或者根据自己的需要变通的做,不一定死照着模式的方法去做。
优雅、高效、实用,是我们追求的,所以设计模式很重要,它让我们更抽象的思考问题。
现在买了一本《Head First 设计模式》。。同新手,,先看这本熟悉下吧。。
先告诉你为什么重要:
一些主流框架里都使用了很多的设计模式,不懂设计模式去了解框架原理的时候会很吃力
减少代码冗余度,使代码易于扩展等
再谈谈书本吧:
《大话设计模式》还成,里面的语言是C#,然而C#和Java很像
《设计模式之禅(第2版)》这本书我翻了一下,感觉还不错,用Java写的
图解系列的最新书籍——《图解设计模式》,图解系列对新手是非常友好的,也是用Java写的,推荐
当然,你也可以去慕课网看一点关于设计模式的视频。讲得还算可以。
然后你要做的是去多写代码,并思考哪些代码可以用哪些设计模式,不要凭空想像,要运用于实战,纸上谈兵是不可取的。
没有大量代码实践, 认真思考
学习设计模式, 犹如设计「空中楼阁」
看看示例,写个示例,好像这是学习Coding普遍方法。
这里有个教程介绍了各个模式并给出了示例。尝试自己另外找一个情形应用这些模式吧。当然也不能过度使用,To A Man with a Hammer, Everything Looks Like a Nail.
设计模式就是使用中一些经验的总结,能够解决特定背景下的问题。
首先要理解其能解决什么问题?如何解决的?优缺点? 自己写几个小例子,之后可以看下Java类库中的设计模式的使用,开源框架中设计模式的使用。
总之,多看多写多思考。
刚入门的新手不要去学设计模式,你还有更重要的东西要去学。你要先熟悉你用的语言,再熟悉你用的框架类库的用法,再积累一定的代码量,然后再来学习设计模式。
思想是建立在语言的基础上的,不精通语言,思想如同空中楼阁。
慕课网有个大话php设计模式我觉得讲的还是很明白的,用了很多例子,你会发现其实你自己在编码过程中经常无意间就用到了各种设计模式。
如果你有代码实现,可以学习一下,否则等积累一定经验再来学,不然就是闭门造车,就算学了你也不知道用在什么地方,什么时候写工厂好点?什么时候用观察者模式好点?看了二十几年A片,不如你真正上那么一次床,所以你在开发经验不足的情况下,空有理论也没用,除非你能把模式直接用在你现在正在做的代码里,否则你就简单了解一下,等真正需要时候能想起来有这种东西可能可以用到,到时候再详细去研究,到那种情况,XXX情况下用不用模式就会是你需要思考的第二个问题了