设计模式

出版社:机械工业出版社
出版日期:2007-3
ISBN:9787111211266
作者:伽玛
页数:374 页页

书籍目录

PrefaceForewordGuide to Readers1 Introduction1.1 What Is a Design Pattern?1.2 Design Patterns in Smalltalk MVC1.3 Describing Design Patterns1.4 The Catalog of Design Patterns1.5 Organizing the Catalog1.6 How Design Patterns Solve Design Problems1.7 How to Select a Design Pattern1.8 How to Use a Design Pattern2 A Case Study: Designing a Document Editor2.1 Design Problems2.2 Document Structure2.3 Formatting2.4 Embellishing the User Interface2.5 Supporting Multiple Look-and-Feel Standards2.6 Supporting Multiple Window Systems2.7 User Operations2.8 Spelling Checking and Hyphenation2.9 SummaryDesign Pattern Catalog3 Creational PatternsAbstract FactoryBuilderFactory MethodPrototypeSingletonDiscussion of Creational Patterns4 Structural PatternsAdapterBridgeCompositeDecoratorFacadeFlyweightProxyDiscussion of Structural Patterns5 Behavioral PatternsChain of ResponsibilityCommandInterpreterItcratorMediatorMementoObserverStateStrategyTemplate MethodVisitorDiscussion of Behavioral Patterns6 Conclusion6.1 What to Expect from Design Patterns6.2 A Brief History6.3 The Pattern Community6.4 An Invitation6.5 A Parting ThoughtA GlossaryB Guide to NotationB.1 Class DiagramB.2 Object DiagramB.3 Interaction DiagramC Foundation ClassesC.1 ListC.2 IteratorC.3 ListIteratorC.4 PointC.5 RectBibliographyIndex

编辑推荐

  《设计模式:可复用面向对象软件的基础》(双语版)是引导读者走入软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。四位顶尖的面向对象领域专家尽心挑选了最具价值的23种设计实践,加以分类整理和命名,并用简洁而易于重用的形式表达出来。这23个模式逐渐成为开发界进行技术交流所必备的基本知识和语汇。  《设计模式:可复用面向对象软件的基础》(双语版)已经成为广大技术人员的圣经和经典,一直名列Amazon和各大书店销售榜前列。十年来不断重印,销售逾七万册。

作者简介

《设计模式:可复用面向对象软件的基础》(双语版)是引导读者走入软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。四位顶尖的面向对象领域专家尽心挑选了最具价值的23种设计实践,加以分类整理和命名,并用简洁而易于重用的形式表达出来。这23个模式逐渐成为开发界进行技术交流所必备的基本知识和语汇。
《设计模式:可复用面向对象软件的基础》(双语版)已经成为广大技术人员的圣经和经典,一直名列Amazon和各大书店销售榜前列。十年来不断重印,销售逾七万册。

图书封面


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



发布书评

 
 


精彩书评 (总计3条)

  •     看计算机书籍有个特点,中文的,有时难以理解到字里行间的背后意义,尤其是一些隐喻和幽默写法。因此,双语做的就很不错,对于一些拗口的中文句子就可以去看英文。另一点,我也可以锻炼自己的英文翻译能力。看中文时,常常会看一下,这句话的英文应该要怎么说合适。关于内容,GOF的书,很经典的书。
  •     本书写于1994年,是软件行业Design Patterns的开山之作,很经典却也很难懂。在将近二十年之后的今天看来,感觉本书在讲解设计模式上有些盛名之下其实难副。现在除了这本书已经另有不少其它讲解设计模式的后起之秀,因此不建议从这本书开始学习设计模式。《设计模式解析》、《Head First设计模式》更加适合入门,而且使用的是Java语言,天生比本书所用的C++适合讲解OOP、设计模式。不过本书对设计模式发展的贡献依然是无语伦比的,因为本书首次把Design Patterns引入软件工程中,从而为发展到现在依然方兴未艾、炙手可热的设计模式技术奠定了根基,四位作者也被亲切地称为GoF。书中提到设计模式这个概念来源于建筑学书籍《建筑的永恒之道》一书。非常佩服GoF从两种不同的行业设计中看出设计的共通点,也许这个设计共通点本身就是一个抽象层,封装了各行各业的设计差异(在我看来,设计模式的成功之处就在于它引入了抽象层,从而优雅地封装了变化)。感觉需要有大量编写代码、重构经验后才能体会到设计模式的妙用,不然只会杀鸡用牛刀,弄巧成拙。可以将设计模式与敏捷开发理论结合使用,Refactoring to Patterns。读书笔记:封装变化针对接口编程,而不是针对实现编程优先使用对象组合,而不是类继承Singleton:保证一个类仅有一个实例,并提供一个访问它的全局访问点。Strategy:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。Strategy模式使得算法的变化可独立于使用它们的客户。Template Method:定义了一个操作中的算法框架,而将一些步骤延迟到子类中。Template Method模式使得子类可以不改变一个算法的结构就可以重新定义该算法的某些特定步骤。Facade:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。Adapter:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。Factory Method:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。Composite:将对象组合成树形结构以表示“部分-整体”层次结构。Composite模式使得客户对单个对象和复合对象的使用具有一致性。Iterator:提供一种方法顺序访问一个集合中各个元素,而又无需暴露该对象的内部表示。Observer:定义对象间的一种一对多依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动刷新。Prototype:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。Chain of Responsibility:为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。Command:将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。State:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。Decorator:动态地给一个对象添加一些额外职责。就扩展功能而言,Decorator模式比生成子类方式更为灵活。Flyweight:运用共享技术有效地支持大量细粒度对象。Mediator:用一个中介对象来封装一系列对象的交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。Proxy:为其他对象提供一个代理以控制这个对象的访问。Bridge:将抽象部分与它的实现部分相分离。Bridge模式使得抽象与实现都可以独立地变化。Builder:将一个复杂对象的构建与它的表示相分离。Builder模式使得同样的构建过程可以创建不同的表示。
  •     我本人比较喜欢c#,呵呵它的界面开发比较简单,对他也比较熟悉,现在在一家公司实习,具体看过一些设计算法类的书,主要对抽象工厂模式比较熟悉,他们确实是太好用了,对自己以后的设计都有很多引荐作用,我感觉《设计模式》这本书挺不错的,对以后的开发会有很大帮助,起码从思想上让你更符合规范符合面向对象

精彩短评 (总计40条)

  •     设计,8月前读完
  •     在nero读得最熟的一本书,那时候早上到公司很早,一个人都没有,我可以很安静地边看边画边思索。
  •       23个设计最基础的设计模式,每每读起如醍醐灌顶!不愧为经典之作!
      
      
      创建型
      1. Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类
      2. Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
      3. Factory Method:定义一个用于创建对象的接口,让子类决定实例化那一个类。Factory Method使得一个类的实例化延迟到其子类
      4. Prototype:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
      5. Singleton:保证一个类仅有一个实例,并提供一个访问它的全局访问点
      
      结构型
      1. Adapter:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作
      2. Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化
      3. Composite:将对象组合成树形结构以表示"部分-整体"的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性
      4. Decorator:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式比生成子类给为灵活
      5. Facade:为子系统中的一组接口提供一个一致的界面,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:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
      11. Visitor:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
      
  •     枯燥,看了几章,没能坚持看下去。概念化太强!
  •       花了一个月时间,把英文版大致过了一遍。由于有一些失败的编程经历,大致还是能够理解作者的用意的。个人喜欢先看motivation,structure和sample code,再回过头看讨论。
      
      有点遗憾的是书中对各个模式的横向对比做得不够。有些地方容易混淆,有些场合的名词太过空洞。或许只有在反复阅读和实践中去领悟吧。
      
      
  •     没看出用途..
  •     不错
  •       如书中所说“设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难”,很多人在设计面向对象软件时往往无从下手,勉强设计的结果也很难扩展和维护,这本书告诉你,大师是怎么设计的。
      
      本书以一个文档编辑器的示例开始引入常见的设计模式,并做了简单的说明。后面各章按类别:创建型、结构型、行为,详细分析了各个模式,并配以样例代码。本书有一点比较好的是,他把几个有关的模式放在一起,对比他们的特点并说明他们之间的关系,这样一来,即使你对某个模式只有一点模糊的概念,完全可以把这本书当字典,查到你想使用的模式和相关的模式。
      
      当然有一点觉得不大友好,为啥样例代码是 C++ 和 smalltalk?C++ 是一个主流的编程语言,用这个说的过去,虽然我对 C++ 一点都不熟悉,smalltalk 虽然有点名气,但是毕竟用的不广泛,估计没多少人能看懂。我还是建议使用 Java,一门语言就足够了。
  •        两年前的面向对象课程,要求我们读这本书,当时没太看懂,只是简单的应付了一下作业,将自己要讲的3个模式囫囵吞枣地看了.当时讲composite模式的时候,还记得被黄震春老师批评,我正好理解反了。。
      
       今年暑假我再次看此书,多了两年的编程经历,一年的实习经历,忽然觉得简单了很多。在邮箱找到了两年前我当时在台上讲composite模式的ppt,看了几页就立马发现,我确实搞反了。
      
       这本20年前的神作,虽然很多人说晦涩难懂,我现在觉得其实还好,没想像中的那么难理解,也没想像中的那么枯燥无味,认真看还是能看的。
      
       书中的各种模式可能还需要自己在接下来的编程中逐渐去融会贯通。但是这几天读完了全书,一本两年前看不懂,一直令我感到畏惧的书,今天终于被我拿下了,还是难以隐藏心中的喜悦之情,所以短短写一两百字纪念一下~
  •     设计模式的鼻祖,叹仰之作,只是由于看得时候本人C/C++水平大概是个半吊子,理解上很次,后来看java与模式,倒是记了厚厚的一本笔记,理解得比这个好,不过将来有机会肯定要重新学习的
  •     单纯的知道了23个模式
  •     必看丛书~ 嘻嘻
  •     编程之子哥哥推崇并且翻烂掉的书
  •     四人帮的,是他们开创了设计模式的时代,不五星能行么。
  •     许多项目确认这里的模式所说
  •     读不懂……
  •       可复用的软件,好!
      面向对象的软件,好!
      我的代码应该尽可能的用设计模式,嗯,等等。
      
      之所以出此感慨是因为最近一次的code review我用了state pattern,结果reviewer说不直观。我郁闷了一会儿,试图教育他什么是state pattern,为什么好。不过最后还是改回了if...else来实现。
      
      又看了公司(Google)的一个Web Application Framework,文档里说这是用了Command Pattern。我一看,好,用了模式的肯定是好东东。
      
      现在我的感觉是如果是写Library、Framework什么的,应该用设计模式。写Application,理解设计模式可以帮助学习Framework。不过Application本身的代码未必要用设计模式,因为设计模式是适合需要重用的代码,很多Application的代码并不好复用。
  •     nb!!!
  •     4人组的设计模式作为参考资料比较合适,但作为设计模式入门还是建议看HeadFirst的设计模式
  •     现在读来很有趣。
  •       之前看过若干本设计模式的书,大都是矫柔造作的例子,长篇累牍的废话,不清不楚的论述。往往翻看数页仍然不知所云,云里雾里。
      
      相较而言,本书对于模式的论述可谓拳拳到肉,酣畅淋漓。所采用的例子也是从现实项目中抽取出来的,更加贴近设计模式的现实使用场景。快哉!快哉!
      
      本以为知识密度如此大的书势必枯燥的紧,但没想到翻看数百页却欲罢不能。
  •     需要一读再读,随着项目经验,会越来越理解其中的哲学。
  •     看过讲设计模式最棒的一本书。语言精练,有思想性,将道理讲明白了。
  •     看完之后对编程有了焕然一新的认识
  •     23种设计模式命名, 在工作交流中增加不少方便性
  •     讲得的确经典,但不适合入门和学习。适合对设计模式有一定基础后再阅读
  •     经典,在弟弟家里了。
  •     在买书一年后终于看完了……早知道这么晚才看,就不用买双语版了。 各种模式讲的比较详细,比较到位,也不难理解。(也可能和这是我看的第二本设计模式的书有关吧……) 就是书太老了,这之后新的东西应该很多了。 可参考: http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
  •     OO最佳实践
  •     看完了原版的部分,觉得这种书对于oo编程的人来说就必须放在手边
  •     看完之后 各种无理由套用 果然哥是个现学现卖的骚货
  •     不是技术,而是艺术
  •       非常不错的一本书...........................
      非常不错的一本书...................................非常不错的一本书...........非常不错的一本书........
  •       非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错非常不错
  •     基本只看了中文部分,讲解有些学院派
  •     需要不断看的。。。
  •     读得很粗。没有经过较大型项目的历练看这本书很可能会云里雾里,书的作者希望达到见微知著,可是不能却插入一观全局的代码,要想深入的理解设计模式需要通过具体业务show your code。本书值得称赞的地方是使用了C++,smalltalk 语言来讲解,虽设计模式似乎与语言无关,却需要恰当以语言的相关特性为基础,和看java版的设计模式还是不一个味道的
  •     很经典但却很难懂
  •     经典中的经典,面向对象进阶必读。
  •     匆匆看过
 

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

零度图书网 @ 2024