学习设计模式已经有一段时间了,对23种模式的基本概念有了一定了了解,所以就想通过师傅的指导来加深对设计模式的理解。毕竟,他们都是过来人,明白应该如何去使用;同时也是对自己近一阶段学习的检验。
一开始自己心里还有点忐忑,不知道应该师傅会提那些问题,以及我该如何去作答,突然间就没有了思路。还好师傅都了解这一情况,先让我介绍一些重要模式的用法概念等问题,等自己差不多进入状态后就逐渐深入,比如解释一些代码的作用和机制等。然后师傅就自己所说的进行补充和细化,让自己获益匪浅啊。
以单例模式为例,在介绍单例模式的时候,概念都有些模糊了,更别提他的作用和优点了。然后再看它的基本代码,大概的意思能懂,可是介绍的时候往往不能说出来或者表达不清楚。就这个问题师傅给作了一个示范,就是逐个分析其过程,知道该程序的过程是如何进行的,其调用的过程等问题;还有就是某个关键字的用法,比如这个模式中的Static,实例化中的判断等问题。把这些基本概念都理解之后,在进行扩展,例如该模式中的锁,然后上升到双重锁定。虽然自己看书的时候,也是这么一个过程,可是那个时候大多数都是跟着课本的思路走的,完全没有将自己的想法加进去,少了很多为什么。所以对这些问题的认识也就不到位了。
在这个过程中,最重要的还是要联系我们所学到的知识,比如我们先前学的机房收费系统。看到某个模式之后,从系统中找相关的模块,这样有概念又有我们经历过的例子,达到的效果就肯定不一样了。
通过这次的验收让自己收获了很多:
1、我们接受编程知识已经有一段时日了,不能总是停留在表面,有的时候我们需要对某个过程的机理应该有专研的精神,应该逐渐转向精学。学会找到每个过程中的关键点
2、给自己信心。学习这一块的时候,一直感觉自己不懂,理解不深;所以在这停留的时间就有点长了,后来经过师傅的指导明白,不懂这个过程是不可避免的,毕竟是刚开始接触。我们需要接着走,有问题可以悬起来,等以后肯定会有实践的时候,会有明白的时候。
设计模式的学习就暂时结束了,期待着重构时候的运用。现在开始下一阶段的学习。。。