設計模式是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。
目前已經總結出的設計模式有23種,一些經典書籍對此已經有專門的闡述。粗看下來,讓人很是頭大。那么,作為一個程序員,應該如何學習這些設計模式呢?下面給出幾條建議。
理解基本概念,再學習設計原則
在學習設計模式之前,程序員首先理解面向對象的基本概念,比如:封裝、繼承、多態、組合/聚合、依賴等。這些基本概念是學習面向對象設計的基礎,只有在理解這些基本概念的內涵,弄清這些概念的具體實現方式及其優缺點之后才能更好地學習設計原則。
先學習設計原則,再學習設計模式
每種設計模式都反映了某種設計原則。所以掌握了設計原則可以更好地理解設計模式,知道怎么去應用設計模式,甚至是創造自己的設計模式。學習設計模式之前,要先學習設計原則。學習設計原則可以參考兩本書:《敏捷軟件開發》與《UML與模式應用》。
從責任分配角度學習設計模式
面向對象的原則就是一切都是對象。在設計模式中每個對象的職責都是明確的。所以,我們可以通過熟悉對各個類分配的職責來理解設計模式。
從重構到模式
設計模式是是基于實踐總結出來的一套可復用的設計方案,如果只從書本中學習,是很難真正體會到它的妙處,所以程序員需要通過自己的實踐,不斷地對某個設計模式進行重構,才能對它內在的思想理解得更加透徹。
記住典型案例
學習知識,最重要的是把知識具化在某個具體的案例上。學習設計模式,在了解了書本中的那些知識后,程序員要能夠通過類比、想象,把它與自己現實開發中的某個典型案例結合起來,這樣才能獲得對設計模式的感性認識。
從客戶角度考慮如何使用
設計模式是幫助程序員更好地實現用戶的需求。所以程序員在理解設計模式時,一定要從客戶的角度去考慮是如何使用的。
這正是:
設計模式好東西,學習起來不容易
掌握基礎多練習,聯系實際作案例
參考書目:術以載道:軟件過程改進實踐指南,作者:任甲林,出版社:人民郵電出版社