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