有关设计模式的学习

从今年7月毕业以来,一直在学习设计模式,有一个半月了。参考了banq写的设计模式专题、GOF的设计模式和阎宏的“Java与模式”,而且按照 banq给的建议,分析了Jive的source。但是收效不大,对很多模式的理解还是不够贴切,在Jive中我就看到了Factory模式及Proxy 模式的一些应用。还有这些书中提到很多模式的动机以及解决方案让我不知所云。希望大家探讨一下,给我点学习设计模式的建议。谢谢!

需要实践 毕竟没有项目经验。

可是在中国到处充满外包的软件企业中,如何才能获取设计模式的经验呢 我们做的只是没日没夜的填充业务代码,模式离我们太远。

>我们做的只是没日没夜的填充业务代码,模式离我们太远。
错,只要有代码就有模式,只不过我们不知道而已。

第一步从refactor开始,在你没日没夜的填充业务代码时,如果发现一个方法代码超过20行,就有重构的余地,虽然不一定使用模式,OO思想会体现。

学习模式一定要与实践相结合。不然就像看天书,不仅理解不了,过几天也就忘得一干二净了。
其实最好的办法是自己想个需求,立个小项目。
一边研究,一边code,一边学习.........

我们一直提倡用设计模式构建系统的应用框架,就是为了系统重用、灵活、可扩展,但常常是以性能为代价。设计模式路在何方?

"系统重用、灵活、可扩展,但常常是以性能为代价"

这是不一定的。两者间不是必然的联系。

学习模式的时候,第一其实你不是要学习模式,而是运用模式的场景。

当你能够非常清楚场景的时候,才是你需要一个解决方案的时候,这个时候,你先别去考虑模式,你先用你自己原来学到的知识去试着解决这个问题,你可以用多种方式去解决这个问题,并比较它们之间的优劣。

然后,你才去学习用模式如何来解决这个问题。和你原来自己考虑的解决方案一样,用模式的方案也有它自己的局限性和优劣,你可以和你自己原来的方法进行比较。

最后,你可以总结一下,该模式是解决什么样的问题的,在什么样的情况下不适合用,有什么替代的解决方案。

总的来说,学习不是让你去看,而是让你去思考,去总结。