什麼是設計模式

2021-05-27 09:32:30 字數 1152 閱讀 9575

什麼是模式,這是乙個看上去簡單,但是又非常不簡單的問題。我見過很多人,學習模式理論已經很長時間了,但是並不真正理解這一點。

模式理論的基本思想其實起源於中國,是中國文化的固有思想。你,我,我們中每乙個自幼受到中國思想薰陶的人,都自然具有這一基本思想。模式的思想存在於中國文化的各個角落,包括哲學、法律,醫學,兵法,體育,文學,直到我們行為處事的方式。

模式的思想,長期以來不存在於西方思考方式中,至今也不是西方文化的主流思想。因此學習模式,切忌以西方式的思路學習。不然的話,緣木求魚,事倍功半。

簡單地講,所謂模式,就是得到很好研究的範例。設計模式,就是設計範例。在孫子兵法中,充斥著各種模式。孫子說,「至於死地而後生」,就是戰爭模式。三十六計,條條都是模式,比如「走為上」,「空城計」也都是戰爭模式。

這些模式中的每乙個都具有典型意義,具有學習價值。通過研究這些模式,學習者可以相互交流,可以在自己的實踐中舉一反三,推陳出新,加以應用。

在我們參加高考的時候,老師給我們很多的典型題目,作為練習使用。這些題目一般來說不會在高考中原封不動地出現,但是這些題目會有一些內容啟發我們的思考,可以讓我們舉一反三,從而為考試做好準備。

模式不是框架(framework),也不是過程。模式也不是簡單的「問題的解決方案」,因為模式必須是典型問題的解決方案,是可以讓學習者舉一反三的,有研究價值、有交流價值,有自己的名字的例子。

模式不能套用。不要以為在任何乙個系統中都要使用某些設計模式。系統的設計也不是含有設計模式就好,更不是含有越多的設計模式就越好。

在《三國演義》中,馬恕就套用了「至於死地而後生」的戰爭模式,最後倒了大黴。在高考中,你如果把老師交給你的典型題目答案倒背如流,在乙個個放到考試卷子上去,放得越多,恐怕你就離考上大學越遠。

比如你喜歡三十六計,如果你在執行某項軍事任務的時候,千方百計地將盡可能多的三十六計用到裡面,每次都來乙個「走為上」,那麼你的朋友和敵人都會覺得某名奇妙。如果你非三十六計中的計謀不用,或者認為非三十六計中的策略不算好策略,那麼別人只能認為你不懂三十六計的精髓。

中國傳統醫學也是一樣,有時看上去症狀相似的病,卻要使用不同的處方,即所謂辨證用藥。如果每次給病人看病,都要捧出某本醫案,將盡可能多的著名醫案用到你的病人身上,恐怕過不了多久就麻煩大了。

中國古代的法律,就是案例法;也就是需要法官在研習案例的基礎之上,舉一反三,適當發揮。開個玩笑,如果你喜歡上「軋美案」,逢美必軋,恐怕需要及早做好該行的準備。

設計模式 什麼是設計模式

在 設計模式之禪 一書中,秦小波前輩寫到 它是一套理論,由軟體界的先輩們總結出的一套可以反覆使用的經驗,它可以提高 的可重用性 增強系統的可維護性,以及解決一系列的複雜問題 也就是說,我們開發人員的前輩曾遭遇過相同的問題,也順利地使用各種方案解決過這些問題,然後他們把這些解決方案總結成了經驗,也就是...

什麼是設計模式?

設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使 編制真正工程化,設計模式是軟體工程的基石脈絡,如同大廈的結構一樣。通俗的說,...

什麼是設計模式

設計物件導向的軟體很難,設計可復用的物件導向軟體更難。你必須找到相關的物件,以適當的粒度將它們歸類,定義類的介面和繼承層次,並建立物件之間的關鍵關係。你的設計應該能夠處理手中特定的問題,同時還能夠通用,以便處理將來的問題或其他需求,你還希望避免重新設計,或者至少以最低的代價來完成設計。有經驗的物件導...