《HeadFirst設計模式》讀后感——對學習設計模式的一些想法


  最近看完了《HeadFirst設計模式》,GOF的《設計模式——可復用面向對象軟件的基礎》的創建型模式也讀完了,經歷了從一無所知到茅塞頓開再到充滿迷惑的過程。

  不得不說《HeadFirst設計模式》是一本非常好的入門書,每一章都是先提出問題,然后討論、分析,引導出相應的設計模式,再一步一步的實現,幽默的語言和有趣的插圖,讓人輕松愉快的學習了一個模式。之前我對學習設計模式是有很大的畏難情緒的,上網一搜一看,媽個雞,動不動就什么GOF什么23個設計模式,然后找個工廠方法或者抽象工廠的例子一看頭都炸了,直接就放棄了。但是,看來這本書的第一章學習了策略模式之后,感覺設計模式也就那那么回事呀,然后繼續往后看,除了少數幾個模式,簡直就是哪里不會學哪里,so easy……那少數幾個其實也就是觀察者,抽象工廠和策略模式,有可能是我智力太低理解不了,感覺真的抽象。但是我讀了GOF的書又看來網上一些例子后再回過來看,這本書里抽象工廠的表述似乎太復雜了。一般的例子里工廠就一兩個方法,具體產品也是就一兩個,而這本書里工廠有6個方法,8個具體產品(兩個族,每個族4個),當時我就懵逼了……但是這並不影響,因為這本書只是起個引導作用,雖然厚達600頁但是並沒有完整的介紹所有的GOF的23個設計模式,於是我又不得不從褲襠里掏出了絕世武功秘籍《設計模式——可復用面向對象軟件的基礎》……

  秘籍就是秘籍,連名字都這么霸氣(長),而且既然是絕世武功定然不是一般路人能夠輕易領悟的。前三章(其實第二章沒看)看完,除了類圖很清晰以外,其他都很難懂啊(╯‵□′)╯︵┻━┻!C++和Smalltalk是什么鬼?(其實C++還是看的懂一點)不過,這書應該是像參考手冊一樣,變用邊看,常看常新的吧……

  我覺得要記住一種設計模式最好就是記住它的UML類圖,因為設計模式就是幾個類和他們之間的關系,有了圖,就很容易用代碼實現了。但是這只是一個空架子而已,是沒有靈魂的軀殼。為什么要使用設計模式,各個模式的優缺點和適用性是什么?這些應該更重要一些。 這在GOF的書里都有詳細描述,但是我大多看不懂……后來在我在看網上的例子的時候注意到了面向對象設計原則(其實《HeadFirst設計模式》里也有介紹,不過很介紹得很簡單),然后才發現還有GRASP這個東西(在這里看到的)。結合GRASP和設計原則大概就能回答前面的問題了,而且還能幫助我更好的理解GOF的書。我想設計模式應該是遵循設計原則而產生的自然的結果,而不是我們去迎合設計模式。那篇博客的作者提到了兩本書——《UML和模式應用》、《敏捷軟件開發—原則、模式與實踐》應該看看……(話說有太多書沒看了啊,大學的時間都浪費在打游戲上了……)

  話說我到底為什么要學習設計模式呢?我想大概是該給自己定個目標了吧,一個菜鳥也有要當架構師的夢。如果有一天老板過來說:“小伙子,你來做架構吧!公司已經開會決定了!”的時候,我也要念兩句詩……然后就是升職加薪,出任CTO,和董事長談笑風生……咳咳,暴力……啊不,白日做夢不可取……快點滾去寫代碼!

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM