老驢拉磨似的,磨著磨著終於來到設計模式部分的學習了。因為C++和自考的原因,電腦方面的學習進度還是比較慢。(有給自己找借口的嫌疑……)那麼,剛剛進入設計模式的學習——簡單原廠模式和策略模式。這已經是幾天前學習的內容了,經過這幾天的沉澱,對設計模式的學習,有一些想法想要說一下。
剛開始學習設計模式的時候,簡單原廠模式確實比較容易理解。當時就覺得實際上它就是一個多態在執行個體化對象時的一個應用,和函數重載以及運算子多載沒有本質上的區別。所以,沒有多想就進入策略模式的學習了。於是在這裡遇到了一定的困難,感覺本質上策略模式和簡單原廠模式也沒什麼區別。我就納悶了幹嘛書上還非得分開來講?實際上是我對策略模式的理解非常的模糊,所以才導致了這種感覺。那麼為什麼會出現這樣的問題呢?
究其原因,我認為是因為我在進入設計模式的學習時,並沒有對設計模式這個東西或者是這個知識做足夠的瞭解。這時候可能很多人就要非議:“我還沒開始學習呢,何談瞭解?”。這裡需要大家回憶米老師說過的一個故事《如何在森林裡不迷路》,即對設計模式需要做一個整體的、大致的、粗淺的認知。我產生以上的問題就是少了這個步驟所導致的,即根本不知道設計模式的目的是什麼,為什麼要非那麼多腦子把簡單的代碼搞的那麼複雜。拿到設計模式這本書,不問三七二十一直接悶頭紮進去,結果只能是暈頭轉向。因為在我眼裡設計模式就是設計模式,實際上設計模式是為了什麼而設計模式,而知道為了什麼而設計模式恰恰是保證的你在學習時保持頭腦清醒的“藥
”!
設計模式的目的是為了代碼的複用、容易理解和保證代碼的可靠性。最終要達成的效果是:可擴充性、可修改性、可替換性。有了這個前提認知,在理解上就有了一定的指導。即設計模式中所做的抽象也好封裝也罷,其目標都指向一個目的,以這個目的為出發點去理解各個設計模式就不再那麼糾結了。這就是為什麼在警方破案過程中,嫌犯的作案動機是一項非常重要的資訊……
實際上,我的學習很容忘卻這個前期的大致的認知,這是習慣性的問題,還得慢慢改……