关于如何灵活运用设计模式的问题

去年看过一遍设计模式,最近将一些比较常见的又复习了一遍,但是总感觉还是不能将这23种设计模式做到融会贯通,举一反三,想问各位,如何训练自己将设计模式做到灵活运用,信手拈来的地步?

小怪兽爱吃肉
浏览 1162回答 2
2回答

holdtom

设计模式是一群有着丰富编程经验的人根据实际情况,抽象出来的一个模式,所以,你大概得1.积累足够的编程经验2.掌握从具体到抽象的能力这样,你学了设计模式之后,就可以很好的根据实际情况,挑选最优的模式。

米脂

理解设计模式,不是具体理解设计模式是怎么实现的,而是理解需要某个设计模式存在的场景,或者说某个设计模式是解决什么场景下的问题,这个就要你具备有“场景”的概念,如果没有“场景”也就无从谈起设计模式,所以最重要的在于你要抽象出场景的概念。还是拿一个具体的例子来说,简单就拿单例模式来说:单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”那么单例模式的场景是什么?首先我们不考虑单不单例的问题,我们认为所有的类都可以衍生出来多个实例,我要用实例的时候就直接衍生,我们总会发现,我们衍生出来的实例会分成2种类型:衍生出的实例各个相同衍生出的实例都有各自不同的特征那么对于1的类型,我们不仅要问,有必要每次都衍生出新的实例么?可以不可以只衍生一个实例反复使用呢?ok,单例的场景出来了,就是要避免衍生出很多个相同的实例,当你遇到这个情况时,你就可以使用单例模式设计。其他的设计模式都可以通过类似的还原场景来理解,毕竟先是有问题,后有的解决方案。建立这个场景的概念是需要不断的实践出来的,还没有场景的概念的时候,就先别说设计模式了。
打开App,查看更多内容
随时随地看视频慕课网APP