?? ?
字號(hào):
前 言
前 言
本書(shū)并不是一本介紹面向?qū)ο蠹夹g(shù)或設(shè)計(jì)的書(shū),目前已有不少好書(shū)介紹面向?qū)ο蠹夹g(shù)或設(shè)計(jì)。本書(shū)假設(shè)你至少已經(jīng)比較熟悉一種面向?qū)ο缶幊陶Z(yǔ)言,并且有一定的面向?qū)ο笤O(shè)計(jì)經(jīng)驗(yàn)。當(dāng)我們提及“類型”和“多態(tài)”,或“接口”繼承與“實(shí)現(xiàn)”繼承的關(guān)系時(shí),你應(yīng)該對(duì)這些概念了然于胸,而不必迫不及待地翻閱手頭的字典。
另外,這也不是一篇高級(jí)專題技術(shù)論文,而是一本關(guān)于設(shè)計(jì)模式的書(shū),它描述了在面向?qū)ο筌浖O(shè)計(jì)過(guò)程中針對(duì)特定問(wèn)題的簡(jiǎn)潔而優(yōu)雅的解決方案。設(shè)計(jì)模式捕獲了隨時(shí)間進(jìn)化與發(fā)展的問(wèn)題的求解方法,因此它們并不是人們從一開(kāi)始就采用的設(shè)計(jì)方案。它們反映了不為人知的重新設(shè)計(jì)和重新編碼的成果,而這些都來(lái)自軟件開(kāi)發(fā)者為了設(shè)計(jì)出靈活可復(fù)用的軟件而長(zhǎng)時(shí)間進(jìn)行的艱苦努力。設(shè)計(jì)模式捕獲了這些解決方案,并用簡(jiǎn)潔易用的方式表達(dá)出來(lái)。
設(shè)計(jì)模式并不要求使用獨(dú)特的語(yǔ)言特性,也不采用那些足以使你的朋友或老板大吃一驚的神奇的編程技巧。所有的模式均可以用標(biāo)準(zhǔn)的面向?qū)ο笳Z(yǔ)言實(shí)現(xiàn),這也許有時(shí)會(huì)比特殊的解法多費(fèi)一些功夫,但是為了增加軟件的靈活性和可復(fù)用性,多做些工作是值得的。
一旦你理解了設(shè)計(jì)模式并且有了一種“Aha!”(而不是“Huh?”)的應(yīng)用經(jīng)驗(yàn)和體驗(yàn)后,你將用一種非同尋常的方式思考面向?qū)ο笤O(shè)計(jì)。你將擁有一種深刻的洞察力,以幫助你設(shè)計(jì)出更加靈活的、模塊化的、可復(fù)用的和易理解的軟件—這也是你為何著迷于面向?qū)ο蠹夹g(shù)的源動(dòng)力,不是嗎?
當(dāng)然還有一些提示和鼓勵(lì):第一次閱讀此書(shū)時(shí)你可能不會(huì)完全理解它,但不必著急,我們?cè)谄鸪蹙帉戇@本書(shū)時(shí)也沒(méi)有完全理解它們!請(qǐng)記住,這不是一本讀完一遍就可以束之高閣的書(shū)。我們希望你在軟件設(shè)計(jì)過(guò)程中反復(fù)參閱此書(shū),以獲取設(shè)計(jì)靈感。
我們并不認(rèn)為這組設(shè)計(jì)模式是完整的和一成不變的,它只是我們目前對(duì)設(shè)計(jì)的思考的記錄。因此我們歡迎廣大讀者的批評(píng)與指正,無(wú)論從書(shū)中采用的實(shí)例、參考,還是我們遺漏的已知應(yīng)用,或應(yīng)該包含的設(shè)計(jì)模式等方面。你可以通過(guò)Addison-Wesley寫信給我們,或發(fā)送電子郵件到:design-patterns@cs.uiuc.edu。你還可以發(fā)送郵件“send design pattern source”到design-patterns-source@cs.uiuc.edu獲取書(shū)中的示例代碼部分的源代碼。
另外我們有一個(gè)專門的網(wǎng)頁(yè)報(bào)道最新的消息與更新:
http://st-www.cs.uiuc.edu/users/patterns/DPBook/DPBook.html.
E.G. 于加州Mountain View
R.H. 于蒙特利爾
R.J. 于伊利諾Urbana
J.V. 于紐約 Hawthorne
1994年8月
[關(guān)閉此窗口]
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -