設(shè)計(jì)模式

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

內(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.

作者簡(jiǎn)介

作者:(美國(guó))伽瑪 等

書籍目錄

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è)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》(英文版)是經(jīng)典原版書庫(kù)中的設(shè)計(jì)模式可復(fù)用面向?qū)ο筌浖幕A(chǔ)分冊(cè)。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


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


用戶評(píng)論 (總計(jì)36條)

 
 

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

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7