• 设计模式:可复用面向对象软件的基础(英文版·典藏版)
21年品牌 40万+商家 超1.5亿件商品

设计模式:可复用面向对象软件的基础(英文版·典藏版)

全新正版 急速发货

38 4.8折 79 全新

库存13件

天津武清
认证卖家担保交易快速发货售后保障

作者埃里克

出版社机械工业出版社

ISBN9787111679547

出版时间2022-05

装帧精装

开本32开

定价79元

货号29238341

上书时间2024-12-25

当科图书专营店

五年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言
本书并不是一本介绍面向对象技术或设计的书,目前已有不少好书介绍面向对象技术或设计。本书假设你至少已经比较熟悉一种面向对象编程语言,并且有一定的面向对象设计经验。当我们提及“类型”和“多态”,或“接口”继承与“实现”继承的关系时,你应该对这些概念了然于胸,而不是迫不及待地翻阅手头的字典。
另外,这也不是一篇高级专题技术论文,而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从一开始就采用的设计方案。它们反映了不为人知的重新设计和重新编码的成果,而这些都来自软件开发者为了设计出灵活、可复用的软件而长时间进行的艰苦努力。设计模式捕获了这些解决方案,并用简洁易用的方式表达出来。
设计模式并不要求使用独特的语言特性,也不采用那些足以使你的朋友或老板大吃一惊的神奇的编程技巧。所有的模式均可以用标准的面向对象语言实现,这也许有时会比特殊的解法多费一些功夫,但是为了增加软件的灵活性和可复用性,多做些工作是值得的。
一旦理解了设计模式并且有了一种“Aha!”(而不是“Huh?”)的应用经验和体验后,你将用一种非同寻常的方式思考面向对象设计。你将拥有一种深刻的洞察力,以帮助你设计出更加灵活的、模块化的、可复用的和易理解的软件—这也是你着迷于面向对象技术的原因,不是吗?
当然还有一些提示和鼓励:次阅读此书时你可能不会完全理解它,但不必着急,我们在起初编写这本书时也没有完全理解它们!请记住,这不是一本读完一遍就可以束之高阁的书。我们希望你在软件设计过程中反复参阅此书,以获取设计灵感。
我们并不认为这组设计模式是完整的和一成不变的,它只是我们目前对设计的思考的记录。因此我们欢迎广大读者的批评与指正,无论书中采用的实例、参考,还是我们遗漏的已知应用,或应该包含的设计模式等。你可以通过Addison-Wesley写信给我们,或发送电子邮件到design-patterns@cs.uiuc.edu。你还可以通过发送邮件“send design pattern source”到design-patterns-source@cs.uiuc.edu获取书中的示例代码部分的源代码。
另外我们有一个专门的网页报道 新的消息与更新:http://st-www.cs.uiuc.edu/users/patterns/DPBook/DPBook.html。

E. G. 于加州Mountain View
R. H. 于蒙特利尔
R. J. 于伊利诺伊Urbana
J. V. 于纽约 Hawthorne
1994年8月

导语摘要
本书是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。四位面向对象领域专家精心选取了颇具价值的设计实践,加以分类整理和命名,并用简洁而易于复用的形式表达出来。本书已经成为面向对象技术人员的 和词典,书中定义的23个模式逐渐成为开发界技术交流所的基础知识和词汇。

作者简介

埃里克·伽玛(Erich Gamma) 在瑞士苏黎世大学获得计算机科学博士学位。他与Kent Beck合作开发了单元测试框架JUnit,并领导了Eclipse Java Development Tools项目。他还曾是IBM Rational Jazz项目的主要成员。2011年,Gamma以杰出工程师(Distinguished Engineer)的身份加入微软Visual Studio团队,领导微软位于瑞士苏黎世的实验室。
理查德·赫尔姆(Richard Helm) 在澳大利亚墨尔本大学获得计算机科学博士学位,曾在IBM T. J. Watson担任研究员,并在澳大利亚开创了IBM面向对象技术研究分部。
拉尔夫·约翰逊(Ralph Johnson) 在美国康奈尔大学获得计算机科学博士学位,伊利诺伊大学教授,在模式、重构等领域均有很高造诣。
约翰·威利斯迪斯(John Vlissides) 在美国斯坦福大学获得计算机科学博士学位,是IBM T. J. Watson研究中心的研究员。

目录
1  Introduction                                           1
    1.1  WhatIs a Design Pattern? . . . . . . . . . . . . . . . . . . . . . . . . . .    2
    1 2  Design Patterns in Smalltalk MVC                          4
    1.3  Describing Design Patterns . . . . . . . . . . . . . . . . . . . . . . . .     6
    1.4  The Catalog of Design Patterns . . . . . . . . . . . . . . . . . . . . . .  8
    1.5  Organizing the Catalog . . . . . . . . . . . . . . . . . . . . . . . . .  9
    1.6  How Design Patterns Solve Design Problems . . . . . . . . . . . . . . .   11
    1.7  Howto Selecta Design Pattern . . . . . . . . . . . . . . . . . . . . . . .   28
    1.8  Howto Use a Design Pattern . . . . . . . . . . . . . . . . . . . . . . . .   29
2  A Case Study: Designing a Document Editor                    33
    2 1  Design Problems                                  33
   2.2  Document Structure . . . . . . . . . . . . . . . . . . . . .          35
    2.3  Formatting . . . . . . . . . . . . . . . . . . . . . . . . ~                 40
    2.4  Embellishing the User Interface . . . . . . . . . . . . . . . . . . . .        43
    2.5  Supporting Multiple Look-and-Feel Standards               47
    2.6  Supporting Multiple Window Systems . . . . . . . . . . . . . . . . . . .   51
    2.7  User Operations . . . . . . . . . . . . . . . . . . . . .                   58
 2.8 Spelling Checking and Hyphenation. . . . . . . . . . . . . . . . . . . . .                   64
 2.9 Summary. . . . . . . . . . . . . . . . . . . . .                  76
    Design Pattern Catalog                            79
3  Creational Patterns                                    81
   Abstract Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   87
    Builder  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   97
    Factory Method  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  107
    Prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  117
    Singleton                                            127
    Discussion of Creational Patterns                           135
4  Structural Patterns                                   137
   Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  139
   Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  151
   Composite  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  163
   Decorator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  175
   Facade..  185
   Flyweight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  195
   Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  207
   Discussion of Structural Patterns . . . . . . . . . . . . . . . . . . . . . . . . .  219
5  Behavioral Patterns                                  221
   Chain of Responsibility . . . . . . . . . . . . . . . . . . . . . . .  223
   Command..  233
   Interpreter  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  243
   Iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  257
   Mediator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  273
   Memento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  283
   Observer..  293
   State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  305
   Strate~v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  315
   Template Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  325
   Visitor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  331
   Discussion of Behavioral Patterns. . . . . . . . . . . . . . . . . . . . . . . .

内容摘要
本书是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。四位面向对象领域专家精心选取了颇具价值的设计实践,加以分类整理和命名,并用简洁而易于复用的形式表达出来。本书已经成为面向对象技术人员的 和词典,书中定义的23个模式逐渐成为开发界技术交流所的基础知识和词汇。

主编推荐

埃里克·伽玛(Erich Gamma) 在瑞士苏黎世大学获得计算机科学博士学位。他与Kent Beck合作开发了单元测试框架JUnit,并领导了Eclipse Java Development Tools项目。他还曾是IBM Rational Jazz项目的主要成员。2011年,Gamma以杰出工程师(Distinguished Engineer)的身份加入微软Visual Studio团队,领导微软位于瑞士苏黎世的实验室。
理查德·赫尔姆(Richard Helm) 在澳大利亚墨尔本大学获得计算机科学博士学位,曾在IBM T. J. Watson担任研究员,并在澳大利亚开创了IBM面向对象技术研究分部。
拉尔夫·约翰逊(Ralph Johnson) 在美国康奈尔大学获得计算机科学博士学位,伊利诺伊大学教授,在模式、重构等领域均有很高造诣。
约翰·威利斯迪斯(John Vlissides) 在美国斯坦福大学获得计算机科学博士学位,是IBM T. J. Watson研究中心的研究员。

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP