什麼是模式

fsz521job發表於2006-07-04
引用:閻宏博士 《Java與模式》的作者[@more@]什麼是模式,這是一個看上去簡單,但是又非常不簡單的問題。我見過很多人,學習模式理論已經很長時間了,但是並不真正理解這一點。

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

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

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

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

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

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

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

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

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

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

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

關於模式的理論的起源、歷史,以及模式理論與中國文化的淵源、哲學思想,設計模式背後的OO設計原則,二十幾個設計模式的詳細講解,他們在Java語言中如何實現,如何在自己的系統設計中舉一反三、推陳出新,以及Java語言本身使用了什麼設計模式,可以看一看我的新書《Java與模式》(電子工業出版社出版)。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/300209/viewspace-846999/,如需轉載,請註明出處,否則將追究法律責任。

相關文章