设计模式

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

出版社:机械工业出版社
出版日期: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条)

  •     一遍一遍的读,闲来没事就翻一翻,已经快沦为厕所读物了!:)现在我的感受是——举头四顾,不见模式!其实模块化,封装,信息隐蔽,高内聚低耦合,这些才是程序设计的精髓。不管是设计模式,还是KISS,归根到底都是为了实现上述目标,所以不能为了设计模式而使用设计模式。
  •     两年前的面向对象课程,要求我们读这本书,当时没太看懂,只是简单的应付了一下作业,将自己要讲的3个模式囫囵吞枣地看了.当时讲composite模式的时候,还记得被黄震春老师批评,我正好理解反了。。今年暑假我再次看此书,多了两年的编程经历,一年的实习经历,忽然觉得简单了很多。在邮箱找到了两年前我当时在台上讲composite模式的ppt,看了几页就立马发现,我确实搞反了。这本20年前的神作,虽然很多人说晦涩难懂,我现在觉得其实还好,没想像中的那么难理解,也没想像中的那么枯燥无味,认真看还是能看的。书中的各种模式可能还需要自己在接下来的编程中逐渐去融会贯通。但是这几天读完了全书,一本两年前看不懂,一直令我感到畏惧的书,今天终于被我拿下了,还是难以隐藏心中的喜悦之情,所以短短写一两百字纪念一下~
  •     可复用的软件,好!面向对象的软件,好!我的代码应该尽可能的用设计模式,嗯,等等。之所以出此感慨是因为最近一次的code review我用了state pattern,结果reviewer说不直观。我郁闷了一会儿,试图教育他什么是state pattern,为什么好。不过最后还是改回了if...else来实现。又看了公司(Google)的一个Web Application Framework,文档里说这是用了Command Pattern。我一看,好,用了模式的肯定是好东东。现在我的感觉是如果是写Library、Framework什么的,应该用设计模式。写Application,理解设计模式可以帮助学习Framework。不过Application本身的代码未必要用设计模式,因为设计模式是适合需要重用的代码,很多Application的代码并不好复用。

精彩短评 (总计79条)

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

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024