设计模式

当前位置:首页 > 计算机网络 > 软件工程/开发项目管理 > 设计模式

出版社:机械工业出版社
出版日期:2002-3-1
ISBN:9787111095071
作者:伽玛
页数:424页

作者简介

本书内容全面,讲解鞭辟入里,独具特色,读者必将在计算机科学的宫殿中的由登堂而入室。

书籍目录

Preface
Foreword
Guide to Readers
1 Introduction
2 A Case Study: Designing a Document Editor
Design Pattern Catalog
3 Creational Patterns
4 Structural Patterns
5 Behavioral Patterns
6 Conclusion
A Glossary
B Guide to Notation
C Foundation Classes
Bibliography
Index

编辑推荐

《设计模式:可复用面向对象软件的基础》(英文版)是经典原版书库中的设计模式可复用面向对象软件的基础分册。

内容概要

作者:(美国)伽玛 等

图书封面


 设计模式下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计10条)

  •     久仰这本书的大名,虽然以前扫过<大话设计模式>和Head First的设计模式,但老实说我真的没耐心看完这两本书.我想或许是我的功力不够,所以没耐心继续往下看吧.不过后来看到不少说道模式的牛文,里面引用了GoF的Pattern Intent,忽然我发现其实在自己的设计中已经不知不觉地用到了很多里面的思想.之前没有看这本书,老实说是因为看到不少书评说这本书的语言太"学术",不够"亲近".为此我也做好了心理准备,最后一下决心,还是买了这本书.先是顺序地看完了Chapter I和II,然后按照II说到得顺序看了后面模式的具体介绍,也忍不住地看了那些介绍的Related Pattern. 实话说,我不觉得这本书的语言有什么太过学术的地方,相反,我觉得倒是很精确和简洁,很值得品味.这个或许和个人的习惯有关系,一直以来都认为所谓高手,一定能把自己熟悉的领域用简洁扼要的语言表达出来,而不乏可读性.这个地方的可读性不能以大众来定,所以我仍然承认这本书是不适合初学者看的,换句话说,值得大多数人细细品味,读上多遍.对于设计模式而言,每次看的感觉和悟出都不太一样,而这次读这本书,是有一种返璞归真的感觉,这也正说明了这本书的经典.要说感悟的话,这里或许说不出那么多.不过个人认为需要澄清的是:1.这本书的语言并不学术化,相反是简洁扼要2.语言难度而言,印象中只出现了个位数的GRE级别的词汇3.这本书抽象,也不抽象,设计模式很大的程度上说明了如何抽象,说以不可能不抽象,而里面是不乏例子的4.里面有C++的Sample Code,如果觉得看不懂,我认为是C++水平不够,里面只有一处稍微有那么一点点tricky,P240的typedef void (Receiver::* Action();其他地方(在语言方面)都非常非常基础.因此,还是强烈推荐.相信大家读这本书一定会很开心的.
  •     由李英军同志翻译的中文版我是无论如何读不懂。本来这本书GOF就是以学术专著的形式写成,所以晦涩啊,艰深啊,再加上中文翻译的不准确性,就造就了该书中文版被芸芸众生顶礼膜拜为天书的壮观景象。不过还好,机械工业出版社自己都觉得问心有愧,遂直接出版『影印版』,于是真迹终于面世。不过话说回来,该书不适合初学者,功力未到,勿念此书。推荐《Design Patterns Explained 2nd 》《Head First Design Pattern》作为入门。
  •     如书中所说“设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难”,很多人在设计面向对象软件时往往无从下手,勉强设计的结果也很难扩展和维护,这本书告诉你,大师是怎么设计的。本书以一个文档编辑器的示例开始引入常见的设计模式,并做了简单的说明。后面各章按类别:创建型、结构型、行为,详细分析了各个模式,并配以样例代码。本书有一点比较好的是,他把几个有关的模式放在一起,对比他们的特点并说明他们之间的关系,这样一来,即使你对某个模式只有一点模糊的概念,完全可以把这本书当字典,查到你想使用的模式和相关的模式。当然有一点觉得不大友好,为啥样例代码是 C++ 和 smalltalk?C++ 是一个主流的编程语言,用这个说的过去,虽然我对 C++ 一点都不熟悉,smalltalk 虽然有点名气,但是毕竟用的不广泛,估计没多少人能看懂。我还是建议使用 Java,一门语言就足够了。

精彩短评 (总计79条)

  •     什么英文原版语言难懂,去看中文版,我看过中文版,那个翻译才叫一个晦涩难懂。英文原版反而非常浅显易懂
  •     GoF
  •     能看原版的,一定要看原版,好书!完毕。
  •     也是经典作品,可以放着
  •     很好的内容,就让包装和印刷给害了,不建议买。
  •     确实比较难,基本上是我碰见的最难的书了,例子很高深,呵呵,有机会再度几遍
  •     这书一直在不断翻着看...
  •     这本书相对来说难,但是对于设计模式来说,一直都是需要不断地实践,需要深度和多次阅读才能感受到其中的精粹。
  •     基本模式
  •     设计模式
  •     设计模式经典入门 就是纸张太差
  •     经典不愧为经典 值得买
  •     公司培训用书,相见恨晚。
  •       在支持函数式的动态语言里, 绝大多数design pattern都变的简单直接,以至于你甚至感觉不到它们的存在。
      
      在面向对象的限制之下,敞开的大门不走,偏要爬窗户。
      
      比如strategy pattern的本意是通过composition而非inheritance,使能够在运行时(runtime)动态绑定某对象的成员方法。
      
      就像游戏里某个actor能够在各种attack() 方法之间自由的切换,如使用手枪,手雷,狙。
      
      在动态语言里直接把attack函数赋值给actor就可以了,根本没有什么pattern可言。
      
      在Java/C++里却tm必须把attack函数包装成behavior object才能赋值给actor。真是脱了裤子放屁啊。
      
      command pattern也类似,可以参照以下Erlang的message passing。
      
      Google研院的Peter Norvig大叔总结了23个design pattern在lisp/python等函数式语言之下的对应物。
      
      引用如下
      
      =====================================================
      
      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
      
      =====================================================
      
      总结:
      
      Design Pattern揭露了OOP系统本身的===> [丑陋] & [无可救药]
      
      
      
  •     看中文版看不下去了,其实英文版挺好的。
  •     书不错,字体稍小,看时间长了累眼睛。
  •       
      TITLE: 设计模式——可复用面向对象软件的基础\\
      ENGLISH TITLE: Design Patterns, Elements of Reusable Object-Oriented Software\\
      AUTHOR: 软件界四人帮 (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)
      
      本书共讲了23个常用的设计模式。
      
      创建型模式
      
      1. 抽象工厂 (abstract factory)
      2. 生成器 (builder)
      3. 工厂方法 (factory method)
      4. 原型 (prototype)
      5. 单件 (singleton)
      
      结构型模式
      
      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. 状态 (state)
      9. 策略 (strategy)
      10. 模板方法 (template method)
      11. 访问者 (visitor)
      
      每个模式我都读了两遍,基本掌握了,剩下的就是练习。
      感觉收获很大,对分析现有的软件系统更有信心了。
      在实现自己的应用时,也会好好设计一番,看看能否用上一招半式。
      “针对接口编程,而不是针对实现编程。”这句话对我启发很大。
      
      本书是一本好书,但机械工业出版社翻译的中文版并不太好。
      可能由于翻译者的水平,一些专业术语翻译得不好。
      另外排版问题也不少:错别字,丢字,重复字,丢标点符号。这些低级错误应该有不下十处。
      
      2014-01-23 Thu
      
  •       很早以前就买了这本,当时看了几个模式就看不下去了,感觉很晦涩。
      现在看来是自己缺乏实际经验。其实23个模式都是从历史上很成功的项目里提炼总结出来(比如NEXTStep,也就是Steve Jobs二次创业时创立的公司NEXT的产品)。模式都是经验的总结,所以对于缺乏实际开发经验的人看起来就很难理解,一个if else的事为什么要用Responsibility Chain或 State模式解决?实话说,虽然看过一遍对很多模式都只停留在肤浅的理解上,真正掌握还得在实际项目里有意识的实践应用。
      引用篇尾引用建筑师C h r i s t o p h e r A l e x a n d e r所说:
      以一种松散的方式把一些模式串接在一起来建造建筑是可能的。这样的建筑仅仅是一些模式的堆砌,而不紧凑。这不够深刻。然而另有一种组合模式的方式,许多模式重叠在同一个物理空间里:这样的建筑非常紧凑,在一小块空间里集成了许多内涵;由于这种紧凑,它变得深刻。
  •     OOP的精华
  •     这个英文版本还不错,小32开的书,浓缩的精华。成长为优秀软件工程师必读书之一。
  •     小开本的,很喜欢这本书,这次优惠活动就购入了,慢慢啃。
  •     最开始买的这本,发现翻不动,然后买了本 大话设计模式读,读完之后回来读,发现里面的东西都很过时,然后就放下了,偶然机会碰到一个大神推荐读,当时出于对大神的信任,回来又捡起来,觉得真是好啊,真是好。。。
  •     东西还行吧
  •     书很好的哦
  •     程序员的必修课
  •     永远的计算机藏书
  •     绝对的经典,虽然没有从本质上解释各种设计模式的共性,也没有解释什么叫程序,但是本质有意义吗?我们需要的就是例子。
  •     熟读,绝对能有很大提高
  •     还需要一遍又一遍地读
  •     值得反复阅读的书!
  •     TTL推荐数目三之三 看出点意思了。只要坚持着读,多少会有点收获。 和UML与模式应用一块读,清晰多了。 第二次放下。
  •       买了本。扔柜子里了。看了几页。结论。一页顶一本书。
      以后看吧。现在先把菜鸟的基础弄扎实再说。不难。不过现在用不着。
      不是说内容不难,而是把难得的东西用很简单的语言描述出来了。
      经典就是经典。国内的书真的太烂了。至今没看到一本号称经典能比得上国外的经典的。
  •     书挺小,字还好
  •     字字珠玑值得一读再读
  •     怎么纸质和盗版的差不多。印的不是很清楚,虽然还过得去。字很小。
  •     工作了两年,自己探索过很多设计模式,也经历了一个失败的项目,终于可以静下心来仔细的阅读了此书,顿感哲学是一切自然科学的总和。
  •     工具书,趁活动囤了
  •       本书列举了经典的23个设计模式,给出这些设计模式的适用场景和示例代码。
      
      通读下来后有很多模式很快就给忘记了,只有些大概的思想:抽象、封装,这两个字如此沉重,以至于至今我都没有完全领会,只能在实践中慢慢琢磨了。
      
      所以我认为,设计模式一定要多实践,在实践中摸索各个模式的优势和不足。
  •     经典读物。
  •     这应该算是学术著作——从最后一章写道的编著历史看,也确实如此(最先起源于Erich的博士论文)。恐怕大部分读者都会对这样的书籍感到枯燥。不过倒挺适合我的口味:-D。由于写作年代久远等缘故,书中的23种设计模式都是“古典”设计模式了。从现在的角度看,这些都只是设计模式中的冰山一角。书中所举的应用例子也都是很传统的软件应用。不过读下来,感觉多态、复用的思想贯穿全书,基本上每种设计模式都对应着一种要复用的东西(可能需要第二次阅读以确认),这也符合本书的副标题。这个思想应该对当今大多数设计模式仍然适用。
  •     这本书应该把第 6 章放到开头,否则只值 3 星。
  •       看到大家都说这本书好,怀着赤诚的心读了一把,发现写的真是晦涩难懂,作者完全没有考虑读者的感受,完全自己在一个尽的卖弄自己的技术,真是垃圾中的极品,真心不建议大家看这本书,我认为,真正的大师,应该用浅显易懂的语言解释深奥的道理,而作者显然没有理解的太深入,达不到这种境界,我知道肯定会有人喷我,毕竟被很多人奉为经典,在那里供为圣经,但不是我一个人有这感觉,我身边不少人都觉得写得很垃圾,相反看了其他的大话设计模式和headfirst设计模式之后,感觉好多了,所以我特意发帖来骂这本垃圾书
  •     纸张和印刷质量都不怎么样
  •     经典无需多言
  •     学习设计模式的必看书籍
  •     又把这本书翻了一遍,通过抽象和封装让不同的逻辑彼此独立起来,减少紧耦合,降低复杂度,亲兄弟也要明算帐的好,能分开尽量分开
  •     书不错。就是英文版本有点看的不是特别明白,还得中文版本啊。
  •     手边书,面对工程问题,总要到这本书里仔细咂摸咂摸滋味
  •     初读很抽象,读懂后非常有用,最好配合实践来理解
  •     这是本设计模式的经典丛书。好好看看。
  •       真不知道看了多少遍我有勇气跟自己说我算是读过了. 期间也读了些其他讨论OOD的书, 这本算是最"干"的.
      
      更多时候那些模式不是自己刻意去使用的, 要嘛是从别人代码里"读出来的", 要嘛就是自己通过朴素的方法(分析->最直接的实现->重构)"渐渐浮现出来的", 自己刻意去套用的情况只出现在一开始乐此不疲地尝试各种模式的时候.
      
      对我而言, 获益有:
      1. 通过识别模式快速了解作者的意图;
      2. 方便交流(包括和自己对话), 简化了对"问题-设计-利弊"的描述, 为什么name是pattern的四要素, 一个name包含了太多的信息.
      3. SOLID原则记心间, 刻意地去忘掉具体的模式, 让设计原则在背后悄悄的影响着自己在设计实现中的一个个小决定.
  •       这就是书中的阳春白雪。当然,高人是一看就懂。
      
      前10遍,只懂几个模式;到20遍,似乎都懂了,但是放下书就不能自己构造一个出来;30遍后,至今没再看。书也看烂了,但是敝帚自珍。
      
      读者最好熟悉c++,以及一定的利用c++做开发的经历。否则,最好看别的类似的书。
      
      如果希望用oo做架构,认真反复阅读此书是大有裨益的。
      
      当然,如果理解了他的思想,你用c也可以做出同样的设计。心中有剑,万物皆可为剑。
  •     从《代码大全》中了解到设计模式这东西,然后从图书馆借到了这本书。初读一遍,感觉挺复杂的,并不是里面的代码写的复杂难以看懂,而是对于我们这样的初学者来说,那种构建代码的思路很少用到,即使碰巧用到了,也不了解这样写代码的好处,设计模式介绍了构建代码的各种常用的思路,并且阐述了每一个模式的使用范围。后来,在卓越上购买了一本设计模式的英文版,又读一遍。还是不甚了解,直到最近写一个小桌面应用程序,在用到MVC架构的时候,有几个类属于不同的Model,却需要相互通信,如果用Controller来进行通信的话,很麻烦。最后我们使用了Observer模式来通信。这样所有需要订阅消息的类都可以Attach到消息源上。自我感觉,设计模式是面向工程应用的,要在工程中慢慢的学习。
  •     2014.1.9 下单,显示 预计 2014.1.10 到。然后 10 号没到。10 号晚上我上网查了一下,居然显示配送成功!2014.1.10 20:06 配送成功!!11 号联系客服。13 号下午 3:30 收到包裹。很小一本书。小点没关系,拿着顺手。可是这个纸质,这个印刷,我是第一次遇到。稍微比盗版要好一点。总体来说, 快递不行,纸质不好,印刷不佳,但是最后要给客服点赞!
  •     便宜不贵的好书
  •     由于做的项目少,平时用到的模式主要也就Factory和Singleton等少数几个
  •     例子很有意思,但是字有点小
  •     学院派
  •     国外经典书,gang of four
  •     一直没有好机会看,买的英文,刚开始有点费时间~ 经典 慢慢咀嚼 吧
  •     被称为经典是有理由的。现在看里面一些东西之前实际遇到过,看一些文章知道了解决方案,一些模式是第一次接触到。四位作者把散落在各种方案里面的东西抽丝剥茧成模式,着实厉害。但是另一方面,如果什么都说这个模式那个模式总会让人烦的,在现实中。
  •     看了之后,我有这样的感觉 Aha, I get it
  •     设计模式书,还是觉得最爱《Java与模式》,其它的都不够细致与全面。
  •     某些总结还是要留过血才深刻~
  •     上乘内功心法。面向有多年项目开发经验,设计经验的读者,老鸟究极进化为骨灰鸟的必读物。本书是写给已经懂设计模式的人读的。
  •     面向对象思想的启蒙读物
  •     感觉不错,但是自己的开发经验太少,大部分内容都还没法理解
  •     本书是设计模式书籍的鼻祖, 很有阅读价值。但注意了各位, 如果你的英语不行,那么本书的字体可以让你的眼睛又增加几度; 本书的字体太小了,纸张过的去,但纸表面不光滑,很粗糙, 很能体现了机工“本色”, 哈哈哈哈。
  •     GoF经典大作,受益匪浅
  •     能看懂作者讲的例子的话会更加深刻
  •     终于算是真正看了一遍,简介,清晰,明了,开山辟地。
  •     手册就应该是小开本,适合翻阅影印质量不是特别好,有的插图是重新描过的
  •     绝对经典的模式书
  •     英文原版 书很经典
  •     凭良心, 我是根据名声打的5分, 现在还没有看懂1/10, 哎~
  •     有点难,但是配合其他书,我想读第二遍的时候会好很多
  •     : TP312/2211-2
  •     两三遍是啃不下这本书的。
  •     非常粗略地看了一遍,挺好。把一些常见的设计经验框架化,以后要尝试有意识地实践慢慢理解掌握。
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024