揭開設計模式的秘辛: 設計模式第1 3/4版

揭開設計模式的秘辛: 設計模式第1 3/4版

Pattern Hatching: Design Patterns Applied

期:
2017/03/30
9
390351
查詢門市庫存

內容簡介

學習設計模式的人,一定聽過《Design Patterns: Elements of Reusable Object-Oriented Software》這本書,俗稱GoF的《設計模式》或GoF的23個設計模式。早期就開始學習設計模式的前輩也大多讀過那本書。
GoF的設計模式只有23個嗎?其實不只23個,在該書出版之時,有接近半打的模式未能被放入該書當中,原因有很多,例如在當年尚未取得兩個以上的大型專案實例來驗證可行性、尚未取得四人的共識、與其他模式之間的分界尚不明朗等等,都可能會導致一些模式未被納入。

該書的遺珠之憾是那些模式呢?在本書中,作者(GoF的四位成員之一)補充了兩個模式,其中的GENERATION GAP模式已經獲得共識,只是在當年的實例不夠多,但現在看來,實在是稀鬆平常,到處都可以看到開發環境或框架採用了這個模式。

至於另一個TYPED MESSAGE模式,在規劃初期是叫做MULTICAST模式,這個模式初期只取得其中三人的同意。藉著這個尚未取得共識的模式,作者揭露了當初在撰寫《Design Patterns: Elements of Reusable Object-Oriented Software》時,四位作者之間對於模式的討論方式,讓讀者得以一窺大師們的討論、思想、以及對軟體設計的習慣。並且在說服反對者的最後關頭,還加入了另一位大師《Clean Code》作者Robert C. Martin(Bob大叔)的支援。如果您仔細閱讀本書第四章及第五章,會發現原來要成為一個新模式真是不簡單啊!那些面世的模式全都是大師們的心血結晶,無價的經驗寶藏。

早期,有些人會批評《Design Patterns》不適合作為學習設計模式的第一本書,或許是因為有些人看的、寫的專案不夠多,所以無法體會其中的奧妙。後來,由於設計模式被大多數高級軟體工程師接受了,因此寫了非常多的相關書籍來介紹設計模式,漸漸地,設計模式不再那麼令人敬畏,也成為了軟體設計的顯學。而這類比較容易理解的書籍,通常都是採用最適合初階讀者的寫法,也就是舉出實例來說明模式。而且舉的例子越是程式設計師理解的例子,就越能使程式設計師學會設計模式並加以活用。

有些書籍,只針對每個模式舉出一個例子,但無法找出一些好例子,可同時應用多個模式來完成同一個例子中不同的功能要求,這樣的寫作法,常常誤導了讀者,違背了設計模式的目的。換言之,一招半式是要如何走江湖呢?本書有別於那些書籍,在本書第二章中,作者以程式設計師最能理解的檔案系統為例,實際示範如何應用六個模式來解決檔案系統不同的功能需求,這六個模式之間的相互合作方式,讓人眼睛為之一亮。讚嘆道︰「原來設計模式是這樣用的啊!」

許多讀者都在期待《設計模式》的第二版,而第二版會是什麼樣子呢?這很難說(也可能不會有第二版了),但至少可以肯定的是,本書作者對於《設計模式》第二版所能做出的貢獻,都已經寫在這本書當中了。
展開看更多

產品目錄

關於中文書名
推薦序
譯者序
審校序
前言

Chapter 1 介紹

1.1 對模式的十大誤解
 誤解1:「模式就是在一種場合下,對某個問題的一個解決方案。」
 誤解2:「模式只是行話、規則、程式設計技巧、資料結構……」
 誤解3:「看到了冰山的一角,就等於看到了整座冰山。」
 誤解4:「模式需要工具或方法的支援才能生效。」
 誤解5:「模式可以保證軟體的耐用、更高的生產率、世界和平,等等。」
 誤解6:「模式可以『產生』整體架構。」
 誤解7:「模式只用在『物件導向』設計或實作。」
 誤解8:「沒有證據顯示模式對任何人有幫助。」
 誤解9:「模式族群是一群由精英分子組成的小幫派。」
 誤解10:「模式族群是為自己服務的,甚至是不懷好意的。」
1.2 觀察

Chapter 2 運用模式進行設計

2.1 基礎
2.2 孤兒、孤兒的收養以及替代品
2.3 「但是應該如何引入替代品呢?」
2.4 存取權限
2.5 關於VISITOR 的一些警告
2.6 單使用者檔案系統的保護
2.7 多使用者檔案系統的保護
2.8 小結

Chapter 3 主體與變體

3.1 終止SINGLETON
3.2 OBSERVER 的煩惱
3.3 重溫VISITOR
3.4 GENERATION GAP
 3.4.1 時機
 3.4.2 結構
 3.4.3 參與者
 3.4.4 合作方式
 3.4.5 效果
 3.4.6 實作
 3.4.7 範例程式
 3.4.8 已知案例
 3.4.9 相關模式
3.5 Type Laundering
3.6 感謝記憶體洩漏
3.7 推拉模型

Chapter 4 愛的奉獻

1. MULTICAST 模式的動機
2. MULTICAST 模式的結構
3. MULTICAST 模式的參與者
4. MULTICAST 模式的合作方式
5. MULTICAST 模式的時機
6. MULTICAST 模式的目的
1. TYPED MESSAGE 模式的目的
2. TYPED MESSAGE 模式的動機
3. TYPED MESSAGE 模式的時機
4. TYPED MESSAGE 模式的結構
5. TYPED MESSAGE 模式的參與者
6. TYPED MESSAGE 模式的合作方式
7. TYPED MESSAGE 模式的效果
8. TYPED MESSAGE 模式的實作
9. TYPED MESSAGE 模式的範例程式
10. TYPED MESSAGE 模式的已知案例
11. TYPED MESSAGE 模式的相關模式

Chapter 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 沒有銀彈
參考文獻

各界推薦

「本書將幫你理解如何將《設計模式》──其實是任何關於設計模式的書籍──當作一本珍貴的指南,而不是一些累贅的規定。」
--朗訊科技公司,貝爾實驗室/James O. Coplien

「這本技術書的文風非常吸引人,我從未讀過這麼精彩的技術書。John真的已經爐火純青、游刃有餘,他對技術主題的把握如此堅實、精準又引人入勝。」
--西門子公司/Frank Buschmann

「對於套用設計模式有點經驗的程式設計師來說,遇到問題該採用這個模式還是那個模式,常常陷入難以抉擇的問題,看起來這樣也可以,那樣也可以,如果您也曾有過如此的經歷,那麼您一定要好好看完這本書,相信對您會非常助益。PS︰大學(甚或科大)不教設計模式,實在是令人難以理解?!」
--博碩文化 總編輯/陳錦輝

「大師已逝,墨跡留香。」
--網路留言

作者介紹

■作者簡介

John Vlissides(1961 - 2005)
是軟體設計模式的創始GoF(Gang of Four)四位成員之一,也就是設計模式名著《Design Patterns: Elements of Reusable Object-Oriented Software》的作者之一。曾在史丹佛大學工作,自1991年起任IBM T. J. Watson研究中心的研究員。他還曾是《Pattern Languages of Program Design》的編輯,以及Addison-Wesley「軟體模式」叢書的顧問。
2005年的感恩節因腦瘤病故,年僅44歲。ACM SIGPLAN為紀念他的貢獻,特別設立了John Vlissides獎。

■譯者簡介

葛子昂

規格

誠品貨碼 / 2681436819008
ISBN13 / 9789864341894
ISBN10 / 9864341898
EAN貨碼 / 9789864341894
頁數 / 184
注音版 / 否
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 23X17CM
級別 / N:無

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送