从设计模式看如何学习
一、学习思路--基础
1.什么是(what)?
2.为什么(why)?
3.怎么用(how)?
4.用/不用会怎么样?
5.优缺点?
二、将学习简单化
1.融入生活
学习不只是单纯的学习,要更多地与生活相结合,我们所学习的各项知识归根结底或是直接来源于生活,或是为了解决生活中的问题而产生的,所以只注重知识而忽略生活从某种意义一上来说等于是忽略了事物的本质,是不可取的。
米老师举的抽象工厂的例子:外观模式中的导医台,通过导医台来找到要就诊的科、外观模式的门牌号等例子将设计模式与生活无缝连接。
老师讲代理模式时,从喝水的问题很自然的切入,他举让青峰师哥给他倒水,后来师哥不在,雪给倒水,如果他们都不在?其他人也可以给我倒水,自然而然的讲代理模式引入了进来并解释了代理的含义。
其实在生活中处处都是学问,比如在学习简单工厂-工厂方法-抽象工厂时老师举的一个食堂吃饭的例子,食堂就是工厂,我们只管吃饭就行了;但是不在食堂吃自己做,而自己就变成了工厂。还可以是这样理解:自己做饭是原始,师母做饭是简单工厂,找个大厨做饭是工厂方法,开个食堂是抽象工厂;假如我有个车是简单工厂,有各种流水线的车是工厂方法,有很多工厂创建不同牌子的车是抽象工厂。这样生活和学习相联系,这个种学习就会特别的形象和清晰。
比如米老师讲的委托,每次上课都有国华给她打水,这样就比较依赖国华。假如国华不在,那米老师就喝不到水,这他就想了一个办法:在教室里有很多人,就不说:"XXX,我渴了想喝水";而是对着教室这个容器说"我渴了,想喝水"就行。那么这个容器中只要有打水的方法的人,米老师什么时候都有水喝。
2.全局观、宏观-微观
老师常说:不谋全局者不足以谋一域,不谋万世者不足以谋一时。
做什么事情,都要有高瞻远瞩的目光。从大局出发,绝对不能因为一时的方便,而忽略对大局的考虑。
学习亦如此要在全局观的指导下学习,避免被个别难缠的问题制约住而陷入一叶障目,不见泰山的境地。
在做一件事情的时候,首先要对这件事情要有全局的把控。比如说讲课,要知道讲课的重点是什么。学习也是,可以通过What、When、Where、Why、Who、How这一大方向来全局上掌握知识。然后再深入细节,会觉得学习比较轻松。
3.联系、对比、编制知识网
学习过程就是不断编织知识网的过程;联系和对比是学习的重要法则,学习方法决定学习效率。
学习要求的不仅是学习知识的能力,同时也对认知能力、实践能力提出了一定要求,可以说学习是综合能力的体现;能否编织起一张属于自己的知识网对于学习而言至关重要,编织知识网的过程才是颗粒归仓的过程,否则学习会事倍功半。
从“师院系统”出发来讲解抽象工厂,联系我们的生活更有利于理解。再如在封建社会,没有自行车,自己建造,没有原料全都自己解决(简单工厂);到第一次工业革命的时候,人们的需求增多了,不仅需要自行车,还需要轿车、卡车,为了提高效率,建造了多条生产线(工厂方法);到第二次、第三次工业革命的时候,不仅为了满足人们需求,效率更高,建起了工厂(抽象工厂),从生活出发联系、比较陌生变得如此熟悉。
当对所学的知识有一定了解的基础上,可以联系以前学习的知识,看能否在所学的知识中找到以前学习知识的影子。这里的对比包括:自身和对外。首先看在自身中能否相互对比知识点来加深对知识的理解。其次能否在所学的知识中找到重复的知识。比如当你在学习一种新的语言的话,与VB做对比,你会发现很多重复的知识。属性、对象、事件等等。这时候就可以去除重复,直接看新的知识即可。
4.极端化
将问题先极端化来看,然后再具体而看。比如老师讲的三工厂的比较:简单工厂-工厂方法-抽象工厂中,工厂方法的极端是简单工厂。
学习要从极端到中间,极端的思想有助于我们学习,快速认识该知识。
5.抽象
抽象,老师讲两三天的讲课中强调最多的一种学习方法。人的大脑喜欢简单的东西,学会抽象将问题简单化;善于对事物进行抽象、封装,封装时为了继承,继承是为了发展。
通过对比后,如果能够把所学过的知识加以提炼和抽象,与生活相结合的话那么对于你的理解会更加的深刻。比如作者写书的角度就是一层的抽象,把每个模式都匹配上相应的故事,易于理解。
三、获得知识的真谛
1.反复
2.实践
俗话说:实践出真知,在实践中能将问题理解得更透彻。