关于如何灵活运用设计模式的问题
去年看过一遍设计模式,最近将一些比较常见的又复习了一遍,但是总感觉还是不能将这23种设计模式做到融会贯通,举一反三,想问各位,如何训练自己将设计模式做到灵活运用,信手拈来的地步?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
去年看过一遍设计模式,最近将一些比较常见的又复习了一遍,但是总感觉还是不能将这23种设计模式做到融会贯通,举一反三,想问各位,如何训练自己将设计模式做到灵活运用,信手拈来的地步?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
最后,开始实践之后建议开始学习面向对象设计(OOD)的书,会加深你的理解,可以把相关的知识融汇贯通起来。
如:
设计模式是一群有着丰富编程经验的人根据实际情况,抽象出来的一个模式,所以,你大概得
1.积累足够的编程经验
2.掌握从具体到抽象的能力
这样,你学了设计模式之后,就可以很好的根据实际情况,挑选最优的模式。
理解设计模式,不是具体理解设计模式是怎么实现的,而是理解需要某个设计模式存在的场景,或者说某个设计模式是解决什么场景下的问题,这个就要你具备有“场景”的概念,如果没有“场景”也就无从谈起设计模式,所以最重要的在于你要抽象出场景的概念。
还是拿一个具体的例子来说,简单就拿单例模式来说:
那么单例模式的场景是什么?
首先我们不考虑单不单例的问题,我们认为所有的类都可以衍生出来多个实例,我要用实例的时候就直接衍生,我们总会发现,我们衍生出来的实例会分成2种类型:
那么对于1的类型,我们不仅要问,有必要每次都衍生出新的实例么?可以不可以只衍生一个实例反复使用呢?
ok,单例的场景出来了,就是要避免衍生出很多个相同的实例,当你遇到这个情况时,你就可以使用单例模式设计。
其他的设计模式都可以通过类似的还原场景来理解,毕竟先是有问题,后有的解决方案。
建立这个场景的概念是需要不断的实践出来的,还没有场景的概念的时候,就先别说设计模式了。
我也是在学习这些东西,java的设计模式,我感觉看了设计模式后,再去看源码要好一些(我指的源码是Android的,因为我是做Android开发的),因为源码中的又很多的思想都是使用的设计模式中的,这样看才能在以后的编码过程中融会贯通的使用这些设计模式,到时候你不自觉的就可以使用这些模式了。。