学习设计模式的一些看法
老驴拉磨似的,磨着磨着终于来到设计模式部分的学习了。因为C++和自考的原因,计算机方面的学习进度还是比较慢。(有给自己找借口的嫌疑……)那么,刚刚进入设计模式的学习——简单工厂模式和策略模式。这已经是几天前学习的内容了,经过这几天的沉淀,对设计模式的学习,有一些想法想要说一下。
刚开始学习设计模式的时候,简单工厂模式确实比较容易理解。当时就觉得实际上它就是一个多态在实例化对象时的一个应用,和函数重载以及运算符重载没有本质上的区别。所以,没有多想就进入策略模式的学习了。于是在这里遇到了一定的困难,感觉本质上策略模式和简单工厂模式也没什么区别。我就纳闷了干嘛书上还非得分开来讲?实际上是我对策略模式的理解非常的模糊,所以才导致了这种感觉。那么为什么会出现这样的问题呢?
究其原因,我认为是因为我在进入设计模式的学习时,并没有对设计模式这个东西或者是这个知识做足够的了解。这时候可能很多人就要非议:“我还没开始学习呢,何谈了解?”。这里需要大家回忆米老师说过的一个故事《如何在森林里不迷路》,即对设计模式需要做一个整体的、大致的、粗浅的认知。我产生以上的问题就是少了这个步骤所导致的,即根本不知道设计模式的目的是什么,为什么要非那么多脑子把简单的代码搞的那么复杂。拿到设计模式这本书,不问三七二十一直接闷头扎进去,结果只能是晕头转向。因为在我眼里设计模式就是设计模式,实际上设计模式是为了什么而设计模式,而知道为了什么而设计模式恰恰是保证的你在学习时保持头脑清醒的“药 ”!
设计模式的目的是为了代码的复用、容易理解和保证代码的可靠性。最终要达成的效果是:可扩展性、可修改性、可替换性。有了这个前提认知,在理解上就有了一定的指导。即设计模式中所做的抽象也好封装也罢,其目标都指向一个目的,以这个目的为出发点去理解各个设计模式就不再那么纠结了。这就是为什么在警方破案过程中,嫌犯的作案动机是一项非常重要的信息……
实际上,我的学习很容忘却这个前期的大致的认知,这是习惯性的问题,还得慢慢改……