設(shè)計模式

出版時間:2002-3-1  出版社:機械工業(yè)出版社  作者:伽瑪  頁數(shù):395  
Tag標簽:無  

內(nèi)容概要

  Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns: Elements of Reusable Object-Oriented Software as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.

作者簡介

作者:(美國)伽瑪 等

書籍目錄

ForewordI Guide to Readers 1 Introduction 2 A Case Study: Designing a Document EditorII Design Pattern Catalog 3 Creational Patterns 4 Structural Patterns 5 Behavioral Patterns 6 ConclusionAppendix A: GlossaryAppendix B: Guide to NotationAppendix C: Foundation ClassesBibliographyIndex

編輯推薦

《設(shè)計模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》(英文版)是經(jīng)典原版書庫中的設(shè)計模式可復(fù)用面向?qū)ο筌浖幕A(chǔ)分冊。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    設(shè)計模式 PDF格式下載


用戶評論 (總計36條)

 
 

  •   什么英文原版語言難懂,去看中文版,我看過中文版,那個翻譯才叫一個晦澀難懂。英文原版反而非常淺顯易懂
  •   本書是設(shè)計模式書籍的鼻祖, 很有閱讀價值。但注意了各位, 如果你的英語不行,那么本書的字體可以讓你的眼睛又增加幾度; 本書的字體太小了,紙張過的去,但紙表面不光滑,很粗糙, 很能體現(xiàn)了機工“本色”, 哈哈哈哈。
  •   從《代碼大全》中了解到設(shè)計模式這東西,然后從圖書館借到了這本書。初讀一遍,感覺挺復(fù)雜的,并不是里面的代碼寫的復(fù)雜難以看懂,而是對于我們這樣的初學(xué)者來說,那種構(gòu)建代碼的思路很少用到,即使碰巧用到了,也不了解這樣寫代碼的好處,設(shè)計模式介紹了構(gòu)建代碼的各種常用的思路,并且闡述了每一個模式的使用范圍。后來,在卓越上購買了一本設(shè)計模式的英文版,又讀一遍。還是不甚了解,直到最近寫一個小桌面應(yīng)用程序,在用到MVC架構(gòu)的時候,有幾個類屬于不同的Model,卻需要相互通信,如果用Controller來進行通信的話,很麻煩。最后我們使用了Observer模式來通信。這樣所有需要訂閱消息的類都可以Attach到消息源上。自我感覺,設(shè)計模式是面向工程應(yīng)用的,要在工程中慢慢的學(xué)習(xí)。
  •   怎么紙質(zhì)和盜版的差不多。印的不是很清楚,雖然還過得去。字很小。
  •   能看原版的,一定要看原版,好書!完畢。
  •   手冊就應(yīng)該是小開本,適合翻閱影印質(zhì)量不是特別好,有的插圖是重新描過的
  •   書不錯,字體稍小,看時間長了累眼睛。
  •   看中文版看不下去了,其實英文版挺好的。
  •   紙張和印刷質(zhì)量都不怎么樣
  •   2014.1.9 下單,顯示 預(yù)計 2014.1.10 到。然后 10 號沒到。10 號晚上我上網(wǎng)查了一下,居然顯示配送成功!2014.1.10 20:06 配送成功??!11 號聯(lián)系客服。13 號下午 3:30 收到包裹。很小一本書。小點沒關(guān)系,拿著順手??墒沁@個紙質(zhì),這個印刷,我是第一次遇到。稍微比盜版要好一點??傮w來說, 快遞不行,紙質(zhì)不好,印刷不佳,但是最后要給客服點贊!
  •   書不錯。就是英文版本有點看的不是特別明白,還得中文版本啊。
  •   經(jīng)典不愧為經(jīng)典 值得買
  •   一直沒有好機會看,買的英文,剛開始有點費時間~ 經(jīng)典 慢慢咀嚼 吧
  •   也是經(jīng)典作品,可以放著
  •   小開本的,很喜歡這本書,這次優(yōu)惠活動就購入了,慢慢啃。
  •   學(xué)習(xí)設(shè)計模式的必看書籍
  •   很好的內(nèi)容,就讓包裝和印刷給害了,不建議買。
  •   這是本設(shè)計模式的經(jīng)典叢書。好好看看。
  •   GoF經(jīng)典大作,受益匪淺
  •   絕對經(jīng)典的模式書
  •   東西還行吧
  •   英文原版 書很經(jīng)典
  •   書很好的哦
  •   工具書,趁活動囤了
  •   書挺小,字還好
  •   設(shè)計模式
  •   國外經(jīng)典書,gang of four
  •   便宜不貴的好書
  •     在支持函數(shù)式的動態(tài)語言里, 絕大多數(shù)design pattern都變的簡單直接,以至于你甚至感覺不到它們的存在。
      
      在面向?qū)ο蟮南拗浦拢ㄩ_的大門不走,偏要爬窗戶。
      
      比如strategy pattern的本意是通過composition而非inheritance,使能夠在運行時(runtime)動態(tài)綁定某對象的成員方法。
      
      就像游戲里某個actor能夠在各種attack() 方法之間自由的切換,如使用手槍,手雷,狙。
      
      在動態(tài)語言里直接把attack函數(shù)賦值給actor就可以了,根本沒有什么pattern可言。
      
      在Java/C++里卻tm必須把attack函數(shù)包裝成behavior object才能賦值給actor。真是脫了褲子放屁啊。
      
      command pattern也類似,可以參照以下Erlang的message passing。
      
      Google研院的Peter Norvig大叔總結(jié)了23個design pattern在lisp/python等函數(shù)式語言之下的對應(yīng)物。
      
      引用如下
      
      =====================================================
      
      16 of 23 patterns are either invisible or simpler, due to:
      
      ? First-class types (6): Abstract-Factory, Flyweight, Factory-Method, State, Proxy, Chain-Of-Responsibility
      
      ? First-class functions (4): Command, Strategy, Template-Method, Visitor
      
      ? Macros (2): Interpreter, Iterator
      
      ? Method Combination (2): Mediator, Observer
      
      ? Multimethods (1): Builder
      
      ? Modules (1): Facade
      
      =====================================================
      
      總結(jié):
      
      Design Pattern揭露了OOP系統(tǒng)本身的===> [丑陋] & [無可救藥]
      
      
      
  •     
      TITLE: 設(shè)計模式——可復(fù)用面向?qū)ο筌浖幕A(chǔ)\\
      ENGLISH TITLE: Design Patterns, Elements of Reusable Object-Oriented Software\\
      AUTHOR: 軟件界四人幫 (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)
      
      本書共講了23個常用的設(shè)計模式。
      
      創(chuàng)建型模式
      
      1. 抽象工廠 (abstract factory)
      2. 生成器 (builder)
      3. 工廠方法 (factory method)
      4. 原型 (prototype)
      5. 單件 (singleton)
      
      結(jié)構(gòu)型模式
      
      1. 適配器 (adapter)
      2. 橋接 (bridge)
      3. 組合 (composite)
      4. 裝飾 (decorator)
      5. 外觀/表面 (facade)
      6. 享元/輕量級共享對象 (flyweight)
      7. 代理 (proxy)
      
      行為模式
      
      1. 職責鏈 (Chain of responsibility)
      2. 命令 (command)
      3. 解釋器 (interpreter)
      4. 迭代器 (iterator)
      5. 中介者 (mediator)
      6. 備忘錄 (memento)
      7. 觀察者 (observer)
      8. 狀態(tài) (state)
      9. 策略 (strategy)
      10. 模板方法 (template method)
      11. 訪問者 (visitor)
      
      每個模式我都讀了兩遍,基本掌握了,剩下的就是練習(xí)。
      感覺收獲很大,對分析現(xiàn)有的軟件系統(tǒng)更有信心了。
      在實現(xiàn)自己的應(yīng)用時,也會好好設(shè)計一番,看看能否用上一招半式。
      “針對接口編程,而不是針對實現(xiàn)編程。”這句話對我啟發(fā)很大。
      
      本書是一本好書,但機械工業(yè)出版社翻譯的中文版并不太好。
      可能由于翻譯者的水平,一些專業(yè)術(shù)語翻譯得不好。
      另外排版問題也不少:錯別字,丟字,重復(fù)字,丟標點符號。這些低級錯誤應(yīng)該有不下十處。
      
      2014-01-23 Thu
      
  •     真不知道看了多少遍我有勇氣跟自己說我算是讀過了. 期間也讀了些其他討論OOD的書, 這本算是最"干"的.
      
      更多時候那些模式不是自己刻意去使用的, 要嘛是從別人代碼里"讀出來的", 要嘛就是自己通過樸素的方法(分析->最直接的實現(xiàn)->重構(gòu))"漸漸浮現(xiàn)出來的", 自己刻意去套用的情況只出現(xiàn)在一開始樂此不疲地嘗試各種模式的時候.
      
      對我而言, 獲益有:
      1. 通過識別模式快速了解作者的意圖;
      2. 方便交流(包括和自己對話), 簡化了對"問題-設(shè)計-利弊"的描述, 為什么name是pattern的四要素, 一個name包含了太多的信息.
      3. SOLID原則記心間, 刻意地去忘掉具體的模式, 讓設(shè)計原則在背后悄悄的影響著自己在設(shè)計實現(xiàn)中的一個個小決定.
  •     買了本。扔柜子里了??戳藥醉?。結(jié)論。一頁頂一本書。
      以后看吧?,F(xiàn)在先把菜鳥的基礎(chǔ)弄扎實再說。不難。不過現(xiàn)在用不著。
      不是說內(nèi)容不難,而是把難得的東西用很簡單的語言描述出來了。
      經(jīng)典就是經(jīng)典。國內(nèi)的書真的太爛了。至今沒看到一本號稱經(jīng)典能比得上國外的經(jīng)典的。
  •     看到大家都說這本書好,懷著赤誠的心讀了一把,發(fā)現(xiàn)寫的真是晦澀難懂,作者完全沒有考慮讀者的感受,完全自己在一個盡的賣弄自己的技術(shù),真是垃圾中的極品,真心不建議大家看這本書,我認為,真正的大師,應(yīng)該用淺顯易懂的語言解釋深奧的道理,而作者顯然沒有理解的太深入,達不到這種境界,我知道肯定會有人噴我,畢竟被很多人奉為經(jīng)典,在那里供為圣經(jīng),但不是我一個人有這感覺,我身邊不少人都覺得寫得很垃圾,相反看了其他的大話設(shè)計模式和headfirst設(shè)計模式之后,感覺好多了,所以我特意發(fā)帖來罵這本垃圾書
  •     很早以前就買了這本,當時看了幾個模式就看不下去了,感覺很晦澀。
      現(xiàn)在看來是自己缺乏實際經(jīng)驗。其實23個模式都是從歷史上很成功的項目里提煉總結(jié)出來(比如NEXTStep,也就是Steve Jobs二次創(chuàng)業(yè)時創(chuàng)立的公司NEXT的產(chǎn)品)。模式都是經(jīng)驗的總結(jié),所以對于缺乏實際開發(fā)經(jīng)驗的人看起來就很難理解,一個if else的事為什么要用Responsibility Chain或 State模式解決?實話說,雖然看過一遍對很多模式都只停留在膚淺的理解上,真正掌握還得在實際項目里有意識的實踐應(yīng)用。
      引用篇尾引用建筑師C h r i s t o p h e r A l e x a n d e r所說:
      以一種松散的方式把一些模式串接在一起來建造建筑是可能的。這樣的建筑僅僅是一些模式的堆砌,而不緊湊。這不夠深刻。然而另有一種組合模式的方式,許多模式重疊在同一個物理空間里:這樣的建筑非常緊湊,在一小塊空間里集成了許多內(nèi)涵;由于這種緊湊,它變得深刻。
  •     本書列舉了經(jīng)典的23個設(shè)計模式,給出這些設(shè)計模式的適用場景和示例代碼。
      
      通讀下來后有很多模式很快就給忘記了,只有些大概的思想:抽象、封裝,這兩個字如此沉重,以至于至今我都沒有完全領(lǐng)會,只能在實踐中慢慢琢磨了。
      
      所以我認為,設(shè)計模式一定要多實踐,在實踐中摸索各個模式的優(yōu)勢和不足。
  •     這就是書中的陽春白雪。當然,高人是一看就懂。
      
      前10遍,只懂幾個模式;到20遍,似乎都懂了,但是放下書就不能自己構(gòu)造一個出來;30遍后,至今沒再看。書也看爛了,但是敝帚自珍。
      
      讀者最好熟悉c++,以及一定的利用c++做開發(fā)的經(jīng)歷。否則,最好看別的類似的書。
      
      如果希望用oo做架構(gòu),認真反復(fù)閱讀此書是大有裨益的。
      
      當然,如果理解了他的思想,你用c也可以做出同樣的設(shè)計。心中有劍,萬物皆可為劍。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7