怎樣學習設計模式?
學習新概念英文要什麼基礎?首先,要知道26個字母吧。如果你對面向對象完全沒有概念的話,建議先可以看一下面向對象的一些知識。畢竟,設計模式是面向對象編程模式的一種總結。學了26個字母你就可以學習新概念了,但是,為了能更好地學習最好是先學一下國際音標。對於設計模式的學習來說,你可以學習一下UML的一些知識。當然,完全不知道UML也可以學習設計模式,在學習的過程中慢慢也就會UML了。
設計模式不是什麼很高深的東西,有了這些知識大膽地學習吧。很多人說,看了很多設計模式的文章,為什麼就是看不懂呢?我覺得原因可能有兩個,第一就是你沒有花時間認真看,第二就是看的文章不適合作為切入點。不管學習什麼,切入點非常重要,如果切入點不是那麼平易近人的話很可能會把你拒之門外,對於初學者來說從實例切入最合適。最好是能碰到自己做過的項目的實例作為切入點,這樣你一比較就知道為什麼設計模式好了。
如果要把設計模式的學習境界分一下級的話,我這麼分:
l 第一重:能看懂設計模式的文章
l 第二重:能自己寫一個設計模式的骨架
l 第三重:能自己編一個新的運用設計模式的例子
l 第四重:能在寫代碼的時候想到似乎有設計模式適合,在翻閱資料後找到了這種設計模式
l 第五重:在理解項目的需求後就能意識到哪裡可以使用哪種設計模式進行優化
l 第六重:完全掌握了設計模式的精髓,靈活使用各種設計模式以及其變種
不管怎麼樣,多看多做多替換才是學習的辦法,別人舉例十個都不及自己做一個例子,被動十個原則都不及自己體會出一個原則。每一種設計模式雖然都有一個骨架,但是也不必過於強調這個形式,很多時候根據自己的需求簡化一點,改變一點,或者混雜一些其它的設計模式,只要能實現目的了,也是一個不錯的選擇。
很多人會覺得這麼多種設計模式沒有幾種能用得上。我覺得這不是什麼問題,用不上那就用不上,這些設計模式是大師經歷無數大型項目後的精華,如果能在自己做的一個小項目中用上兩三個就很不錯了,用上二三十個的項目絕對是怪胎。用不上千萬別強求,否則既不利於項目的可維護性又增加了工作量。
還有很多人會覺得這些設計模式很多都是相似的。而且每個人的感覺還不一樣,有人覺得A和B很相似,有人卻覺得A和B很好區分,但是B和C卻很相似啊。感覺很好區分,說明你看准設計模式的著重點的,感覺一樣說明你看到的還是它的形。雙胞胎雖然形一樣,但是神肯定不一樣的,只要認准設計模式解決的問題,就不會看錯。