我是在前年的時候開始深入接觸C#的,所以,為什麼說是深入呢,大學裡面學過C#,但是,大學的學習你們是懂。剛進公司的三個多月,一直都是在熟悉C#的語法,後來我的頭就讓我做一個計算器的例子(基本上大家都做過這個例子),然後就直接做了,結果可想而知,運行時可以運行,但是只有一個class,頭看了之後,就讓 ...
我是在前年的時候開始深入接觸C#的,所以,為什麼說是深入呢,大學裡面學過C#,但是,大學的學習你們是懂。剛進公司的三個多月,一直都是在熟悉C#的語法,後來我的頭就讓我做一個計算器的例子(基本上大家都做過這個例子),然後就直接做了,結果可想而知,運行時可以運行,但是只有一個class,頭看了之後,就讓我去看一下什麼叫做工廠模式。這個時候才知道有設計模式這個東西,於是在度娘中各種搜索設計模式(那時候只會度娘),再次之後有看了吳強的《大話設計模式》,不得不說對我這種菜鳥來說,這本書就是大肥蟲,通俗簡單易懂,看了讓人恍然大悟,原來代碼還可以這麼玩。在那之後就沒有看過設計模式的書,但是實際代碼中還是用到很多種設計模式,例如單例,組合等等,這都是常用的。前幾天我的頭在網上找了很多書,然後他也發了我一份,他跟我說首先看《C#設計模式》這本書。在看完第一章的時候,我就在問自己,什麼是設計模式?這玩意有定義嗎?一句話感覺自己就懵了,感覺自己好像這章什麼都沒看懂,於是從頭在看,這時候才看到這本書里提到的有關定義:
- 設計模式是對讀者經常遇到的設計問題的可線上的解決方案。(The Smalltalk Companion)
- 設計模式建立了一系列如何完成軟體開發領域中特定任務的規則(Pree 1995)。
- 設計模式更關註與復用可重覆出現的結構設計方案,而框架註重於具體設計和實現(Coplien and Schmidt 1995)。
- 模式提出了一個發生在特定設計環境中的可重覆出現的設計問題,並提供瞭解決方案(Buschmann et al. 1996)
- 模式識別並確定類和實例層次上或組件層次上的抽象關係(Gamma,Johnson,and Wlissides,1993)。
其實看完這些定義之後,設計模式還是沒有一個清晰的樣子,從百度上搜到的設計模式定義無外乎從以上的定義演化而來,在我理解,設計模式是一種規則,但是並不是每個人都要遵循,就像法律和道德規範一樣,雖然這樣比喻不大好,但是很類似,每個人的理解都不一樣,不知道大家有沒有更通俗易懂的說法。
-------------------------------------------------------------
剛剛在網上無意找到的,這段話上半部分就是上面的五條:
設計模式在設計者是一種流行的思考設計問題的方法,是一套被反覆使用,多數人知曉的,經過分類編目的,代碼設計經驗的總結。
使用了設計模式,是為了使代碼具有可重用性,讓代碼更容易被他人理解和保證代碼的可靠性。