模式的產生:
人類在勞動過程中,有很多事情都會重複的出現,而處理這
些事情的方法也比較相近,於是人們開始總結,形成一種對這類事情進行處
理的經驗,並以某種形式(書,口述等)在人們之間進行傳遞,這樣其他的人
或後來人可以在處理這類事務的時候有所借鑑,這樣就大大的提高了勞動的
效率,其實這種解決某些特定的、會重複出現的一套處理事務的經驗方法就
是模式。
模式,有的時候也是經驗的代名詞,在人類的生活,勞動,學習中可以說
是無處不在,模式最大的好處就是復用(借鑑),從而可以提高效率。從某個
角度來件,人類的知識積累過程也是模式的積累過程,只是我們平時不太注
意,或沒有上公升到理論而已。
也許有人說,這個世界沒有兩樣完全相同的事物,這當然是對的,但人類
在學習總結過程中有乙個重要的過程就是抽象,如果沒有抽象能力,人類也不
可能獲得進步,因此在學習模式和使用模式的過程中,抽象是乙個非常重要的
部分,否則再好的模式你也很難發現有可用的地方。
抽象很重要,但抽象很玄麼?其實抽象的理解很簡單就是按你的目的對事
務進行化繁為簡的過程。
設計模式:
設計模式可以說是模式在設計領域的體現,在人類進行設計活動的過程
中,人們發現有些設計的過程及方法都是可以復用的,而且可以讓人們做到
舉一反三,於是人們就把這些在一定的範圍內,頻繁出現,而且解決的方法
相對比較固定的經驗進行總結,並按一定的約定形式表達出來,就形成了設
計的模式。
怎樣看待模式:
首先、模式並不是一種很神秘或深奧的東西,其實模式就是經驗和知識的一
個子集,模式的名稱和表達形式都是模式外在的東西,當然,為了更好的復用和學
習模式,採用比較統一的表現形式也是很有必要的,如,在軟體設計模式中,
很多模式的描述都採用uml圖來進行直觀表達。
其次、模式是一種實踐過程中的產物,因此學習模式和復用模式都必須經過實踐
才能體會更深刻,如果沒有一定的程式設計經驗,要學好模式是很困難的,因此在
學習模式的過程中,動手和聯絡自己程式設計的經驗就很重要。
第三、模式的目的是為了通過提高復用來提高效率,前面說過,這個世界沒有完
全相同的兩種東西,模式可以復用的場景本身就是比較模糊的,雖然經過抽象
過程知道某種場景(問題)可以採用某個模式,但在實際的應用過程中還是會
有所差別的。所以模式在使用的時候需要做一定的修改,不要死套。
第四、模式跟創新又是矛盾的一對,在哲學中所說的經驗主義同樣也適用於我們討
論的模式,這就需要我們在學習和使用模式的過程中對模式有乙個清醒的認識:
1、模式不是萬能的,盡信書則不如無書;
2、世界是變化的,模式也需與時俱進;
3、解決問題的方法不只一種,適用問題的模式也可以有多個。
4、書中提的設計模式僅僅是大海中的一滴水,如果可能,你也可以發現
模式。5、總結是發現模式的唯一途徑,在程式設計設計的過程中要進步就需要不斷總結。
設計模式學習總結
之前一直是面向過程程式設計,前段時間因為某些原因需要更好的去理解一下物件導向思想精髓,在別人的推薦下看了 大話設計模式 這本書。通過對29個模式的學習,不僅僅了解了設計模式是個什麼回事,也稍微加深了一點對物件導向 object oriented 技術。物件導向技術關注的是物件,物件的優點在於,可以定...
規約模式學習總結
目前想到的可以使用規約模式的情況 以後想到了再補充 1.當有一組條件,被多處使用,且這些條件可以任意組合時,這個時候考慮使用規約模式來解耦 下面看一下規約模式的簡單實現 public inte ce ispecificationwhere t class public abstract class ...
設計模式 學習總結
設計模式是解決問題的方案,學習現有的設計模式可以做到經驗復用。擁有設計模式詞彙,在溝通時就能用更少的詞彙來討論,並且不需要了解底層細節。確保乙個類只有乙個例項,並提供該例項的全域性訪問點。實現 使用乙個私有建構函式 乙個私有靜態變數以及乙個公有靜態函式。1 懶漢式 執行緒不安全 public cla...