內容簡介
《設計模式沉思錄》在《設計模式》的基礎上進行了拓展,運用其中的概念,介紹了一些技巧,幫助讀者決定在不同的情況下應該使用哪些模式,以及不應該使用哪些模式。《設計模式沉思錄》不僅對已有的一些模式提出新的見解,還讓讀者見證開發新模式的整個過程。《設計模式沉思錄》適合使用設計模式的軟體開發人員閱讀。
編輯推薦
《設計模式沉思錄》:揭開模式開發的神秘面紗,破除模式十大誤解,養成七種習慣,成為模式設計高手。
《設計模式沉思錄》作者是設計模式的開山鼻祖之一。在《設計模式沉思錄》中,他不僅通過一些通俗易懂的實例對如何運用設計模式進行了深入的講解,而且還介紹了一些新的設計模式。同時還講述了模式背後鮮為人知的一些故事,讓讀者領略其中的苦與樂。
《設計模式沉思錄》幫助讀者在面向對象設計的基本原則下,將設計模式運用到合適的地方。它道出了雖然不正式、但卻嚴格的標準,展現了緊張的疊代過程,《設計模式》中的23個模式正是基於這樣的標準,經歷了這樣的疊代過程產生的。讀者理解了這一點,將有助於把模式套用到講究實用的日常工作中,認識到必須根據手頭的問題來對模式進行調整,並加入自己的思考而不僅僅是盲目地遵循書本教條。通過反覆品味,讀者有朝一日終能編寫出自己的模式!
作者簡介
作者:(美國)威利斯迪斯(John Vlissides) 譯者:葛子昂
John Vlissides(1961—2005) 設計模式四人幫之一,《設計模式》一書的作者。曾在史丹福大學工作,自1991年起任IBM T. J. Watson研究中心的研究員。他還曾是《程式設計的模式語言》的編輯,Addison-Wesley“軟體模式”叢書的顧問。因患腦瘤於2005年感恩節(11月24日)病故。為紀念他的貢獻,ACM SIGPLAN特設立了John Vlissides獎。
葛子昂,現任微軟中國研發集團伺服器及開發工具事業部的軟體開發主管,目前從事WF的相關開發,致力於為WF開發人員提供方便高效的開發工具。之前曾長期從事WCF產品的相關研發,具有豐富 的開發經驗。出版譯作有《.NET設計規範(第2版)》、《Windows核心編程(第5版)》。
目錄
第1章 介紹
1.1 對模式的十大誤解
1.2 觀察
第2章 運用模式進行設計
2.1 基礎
2.2 孤兒、孤兒的收養以及代用品
2.3 “但是應該如何引入代用品呢?”
2.4 訪問許可權
2.5 關於VISITOR的一些警告
2.6 單用戶檔案系統的保護
2.7 多用戶檔案系統的保護
2.8 小結
第3章 主體和變體
3.1 終止SINGLETON
3.2 OBSERVER的煩惱
3.3 重溫VISITOR
3.4 GENERATIONGAP
3.5 TypeLaundering
3.6 感謝記憶體泄漏
3.7 推拉模型
第4章 愛的奉獻
第5章 高效模式編寫者的7個習慣
5.1 習慣1:經常反思
5.2 習慣2:堅持使用同一套結構
5.3 習慣3:儘早且頻繁地涉及具體問題
5.4 習慣4:保持模式間的區別和互補性
5.5 習慣5:有效地呈現
5.6 習慣6:不懈地重複
5.7 習慣7:收集並吸取反饋
5.8沒有銀彈
參考文獻
索引
序言
我永遠不會忘記1994年秋天的那個下午。那天我收到一封來自Stan Lippman(時任C++ Report雜誌的主編)的電子郵件,他邀我為該雜誌撰寫一個專欄,該專欄每兩個月一期。
我們算得上是老相識了,早在他參觀Watson實驗室的時候我們就認識了。那一次我們簡單地聊了他在開發工具方面所做的工作,以及GoF在模式方面所做的工作。與那時大多數人不一樣的是,Stan熟悉模式的概念——他接連閱讀了《設計模式》的一些預印本,並說過一些令人鼓舞的話。儘管如此,我們的談話很快就轉移到了寫作上。隨著談話的進行,我記得自己愈加炫耀起來,仿佛我已經不是自己了。而Stan,這位知名的專欄作家,是兩本非常成功的圖書(還有一本即將出版)的作者,卻稱自己的寫作只是業餘水平。我不清楚我們的談話是否讓他感到愉快,還是在他的下一個約會之前他一直都在耐著性子和我談話。(此後我認識到,如果還有什麼能勝過Stan的忍耐力,那就是他的真誠!)
幾個月後我收到他的電子郵件,心潮起伏,此前的歉疚感就不值一提了。想像著自己為全球的讀者定期撰寫專欄,這既讓我興奮,又讓我恐懼。寫了幾次之後我是否還能繼續?人們是否在乎我寫些什麼?我應該寫些什麼?我寫的東西對別人是否有幫助?
我在恐懼中沉溺了將近一小時。然後我想起我父親的一些告誡:局促不安只能使人無所作為。只要關注最基本的東西,其他東西會隨之而來的。“只管去做”(Just do it),他說這句話比耐克要早得多。
於是我就接受了。
選擇專欄主題非常容易。那時我深陷於模式的研究中已有三年了。我們最近剛完成《設計模式》,但我們都知道它遠遠沒有說完這個話題。專欄會是一個很好的論壇,可以對《設計模式》一書進行解釋,可以對它進行擴展,還可以在新問題出現時展開討論。如果說專欄有助於《設計模式》圖書的銷售,那也無妨,只要它立場公正,不亂吹噓。
現在,我的“模式孵化”專欄已經連載了10多篇文章了,回過頭看,我的恐懼是沒有依據的。我從來沒有因為要找東西寫而為難,而且寫作時我樂在其中。我還從世界各地收到了大量令人鼓舞的反饋,包括一些人要求閱讀過去的專欄,而且這樣的要求一再出現。後來我想到了把我的專欄,以及其他一些尚未發表的關於模式的材料,彙編在一起提供給大家。
本書就是要達到這個目的。讀者將在書中找到我前三年專欄寫作生涯中的思考和想法,其中包括發表在C++ Report和Object Magazine中的所有文章,加上一些零碎的新見解。我按照邏輯的順序來組織內容,而不是通過時間順序來組織內容,其目的是為了使所有的內容能夠像書本一樣連貫。這樣的組織比我想像的要容易一些,因為許多文章既是這個系列的一部分,又是那個系列的一部分,當然這仍然需要耗費大量的精力。我衷心地希望讀者能夠喜歡最終的結果。