原創作者:阿風
日期:2007-06-05
首先說說寫這系列的文章的想法,目的在于:
1.自己也在研習設計模式,通過在自我總結的過程中,希望能多設計模式多一點深刻理解
2.希望給看到這系列文章的朋友一點對設計模式學習的幫助,特別是對設計模式的初學者能起到"引進門"的效果,
如果以上的作用能起到哪怕一點,我也欣聞而笑了.
設計模式(Design Patterns)是什么?為什么會出現設計模式?做過開發項目的朋友可能都遇到過,一個問題會在一個項目或者多個項目中重復出現,而相應的解決方案都是類似相同,相應代碼的實現也是大同小異,為什么我們不能復用這些解決方案,或者說我們是否能修改或重新構建一下設計架構來使得重復的代碼更少,結構更合理? 當然,這些是可行且有必要的. 此時設計模式的出現讓我們茅舍頓開.
說到設計模式,不得談一本書<Design Patterns:Element of Resuable Object-Oriented Software),作者是GoF,實際是三個人合著的.之所以提到這本書,因為這本書的經典在于詳細闡述了23種在軟件開發過程中運用廣泛的"模式",這一個理念的提出,給面向對象設計(OOD)注入了新的血液,體現出OOD超越面向過程設計的優勢所在,從此讓程序員看待代碼有了"哲學的眼光"..
就像這本書定義的模式:每個模式描述了一個在我們周圍不斷重復和發生的問題,以及該問題解決方案的核心,這樣你就能一次又一次使用該方案而不必做重復勞動.
至此,設計模式的意義已經凸現,設計模式給我們的啟發又是什么?的確,每個經典的設計模式體現出了大師的精湛思想,我們需要從中得到的啟發是能否"舉一反三",在我們每一次的軟件設計和開發中融入這些經典模式,讓軟件設計得更易理解,更易拓展,更易維護.這是設計模式給后人的最大啟示.
經典的設計模式給我的啟示應該是個思想,而不是固定的那幾個模式,具體的軟件項目或軟件產品,會有不同情形,我們應該依據具體的情況合理運用模式思想,設計模式只是"招式"套路,要做到"無招勝有招",需要具體的情形分析,并非一定要套用所謂的模式,但是原則是不變的,"讓軟件易理解,易拓展,易維護".
把語言特性和設計模式有機結合起來,對于程序員來說是一個成長的標志點也是轉折點,希望此文能對所有程序員有所幫助.
用心去寫文章是件不容易的事情,需要堅持和執著,既然開始,就應該堅持到底..
這個系列的文章主要是從GoF的歸納的23種設計中挑選十來個在軟件項目中常用和運用的設計進行講敘,講敘風格應該是簡單,深入淺出,思路和代碼相結合.
該系列文章要講述的幾個經典設計模式:(暫定)
實現語言采用Java,是設計模式讓OOD成為軟件開發歷史上的光輝更加絢爛.
有人說:開始總是好的.所以,趕緊開始把.