本書并不是一本介紹面向對象技術或設計的書,目前已有不少好書介紹面向對象技術或設計。本書假設你至少已經比較熟悉一種面向對象編程語言,并且有一定的面向對象設計經驗。當我們提及“類型”和“多態(tài)”,或“接口”繼承與“實現”繼承的關系時,你應該對這些概念了然于胸,而不必迫不及待地翻閱手頭的字典。 另外,這也不是一篇高級專題技術論文,而是一本關于設計模式的書,它描述了在面向對象軟件設計過程中針對特定問題的簡潔而優(yōu)雅的解決方案。設計模式捕獲了隨時間進化與發(fā)展的問題的求解方法,因此它們并不是人們從一開始就采用的設計方案。它們反映了不為人知的重新設計和重新編碼的成果,而這些都來自軟件開發(fā)者為了設計出靈活可復用的軟件而長時間進行的艱苦努力。設計模式捕獲了這些解決方案,并用簡潔易用的方式表達出來。 設計模式并不要求使用獨特的語言特性,也不采用那些足以使你的朋友或老板大吃一驚的神奇的編程技巧。所有的模式均可以用標準的面向對象語言實現,這也許有時會比特殊的解法多費一些功夫,但是為了增加軟件的靈活性和可復用性,多做些工作是值得的。 一旦你理解了設計模式并且有了一種“Aha!”(而不是“Huh?”)的應用經驗和體驗后,你將用一種非同尋常的方式思考面向對象設計。你將擁有一種深刻的洞察力,以幫助你設計出更加靈活的、模塊化的、可復用的和易理解的軟件—這也是你為何著迷于面向對象技術的源動力,不是嗎? 當然還有一些提示和鼓勵:第一次閱讀此書時你可能不會完全理解它,但不必著急,我們在起初編寫這本書時也沒有完全理解它們!請記住,這不是一本讀完一遍就可以束之高閣的書。我們希望你在軟件設計過程中反復參閱此書,以獲取設計靈感。 我們并不認為這組設計模式是完整的和一成不變的,它只是我們目前對設計的思考的記錄。因此我們歡迎廣大讀者的批評與指正,無論從書中采用的實例、參考,還是我們遺漏的已知應用,或應該包含的設計模式等方面。你可以通過Addison-Wesley寫信給我們,或發(fā)送電子郵件到:design-patterns@cs.uiuc.edu。你還可以發(fā)送郵件“send design pattern source”到design-patterns-source@cs.uiuc.edu獲取書中的示例代碼部分的源代碼。 另外我們有一個專門的網頁報道最新的消息與更新: http://st-www.cs.uiuc.edu/users/patterns/DPBook/DPBook.html. E.G. 于加州Mountain View R.H. 于...[更多內容]