《Design Patterns》一書討論了23種不同的范式,並依據三個標准分類(所有標准都涉及那些可能發生變化的方面)。這三個標准是:
(1) 創建:對象的創建方式。這通常涉及對象創建細節的隔離,這樣便不必依賴具體類型的對象,所以在新添一種對象類型時也不必改動代碼。
(2) 結構:設計對象,滿足特定的項目限制。這涉及對象與其他對象的連接方式,以保證系統內的改變不會影響到這些連接。
(3) 行為:對程序中特定類型的行動進行操縱的對象。這要求我們將希望采取的操作封裝起來,比如解釋一種語言、實現一個請求、在一個序列中遍歷(就象在繼承器中那樣)或者實現一種算法。本章提供了“觀察器”(Observer)和“訪問器”(Visitor)的范式的例子。
《Design Patterns》為所有這23種范式都分別使用了一節,隨附的還有大量示例,但大多是用C++編寫的,少數用Smalltalk編寫(如看過這本書,就知道這實際並不是個大問題,因為很容易即可將基本概念從兩種語言翻譯到Java裡)。現在這本書並不打算重復《Design Patterns》介紹的所有范式,因為那是一本獨立的書,大家應該單獨閱讀。相反,本章只准備給出一些例子,讓大家先對范式有個大致的印象,並理解它們的重要性到底在哪裡。