去年看过一遍设计模式,最近将一些比较常见的又复习了一遍,但是总感觉还是不能将这23种设计模式做到融会贯通,举一反三,想问各位,如何训练自己将设计模式做到灵活运用,信手拈来的地步?
2 回答
holdtom
TA贡献1805条经验 获得超10个赞
设计模式是一群有着丰富编程经验的人根据实际情况,抽象出来的一个模式,所以,你大概得
1.积累足够的编程经验
2.掌握从具体到抽象的能力
这样,你学了设计模式之后,就可以很好的根据实际情况,挑选最优的模式。
米脂
TA贡献1836条经验 获得超3个赞
理解设计模式,不是具体理解设计模式是怎么实现的,而是理解需要某个设计模式存在的场景,或者说某个设计模式是解决什么场景下的问题,这个就要你具备有“场景”的概念,如果没有“场景”也就无从谈起设计模式,所以最重要的在于你要抽象出场景的概念。
还是拿一个具体的例子来说,简单就拿单例模式来说:
单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”
那么单例模式的场景是什么?
首先我们不考虑单不单例的问题,我们认为所有的类都可以衍生出来多个实例,我要用实例的时候就直接衍生,我们总会发现,我们衍生出来的实例会分成2种类型:
衍生出的实例各个相同
衍生出的实例都有各自不同的特征
那么对于1的类型,我们不仅要问,有必要每次都衍生出新的实例么?可以不可以只衍生一个实例反复使用呢?
ok,单例的场景出来了,就是要避免衍生出很多个相同的实例,当你遇到这个情况时,你就可以使用单例模式设计。
其他的设计模式都可以通过类似的还原场景来理解,毕竟先是有问题,后有的解决方案。
建立这个场景的概念是需要不断的实践出来的,还没有场景的概念的时候,就先别说设计模式了。
- 2 回答
- 0 关注
- 1200 浏览
添加回答
举报
0/150
提交
取消