设计模式:可复用面向对象软件的基础(典藏版)(设计良好.表达清楚的软件设计模式)
全新正版 假一赔十 可开发票
¥
49.12
6.2折
¥
79
全新
库存4件
作者 [美] 埃里克·伽玛(Erich Gamma)等
出版社 机械工业出版社
ISBN 9787111618331
出版时间 2019-05
装帧 平装
开本 16开
定价 79元
货号 1201886128
上书时间 2024-12-12
商品详情
品相描述:全新
商品描述
作者简介 埃里克·伽玛(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研究中心的研究员。 目录 出版者的话赞誉序言前言读者指南章引言┊11.1 什么是设计模式┊31.2 Smalltalk MVC中的设计模式┊41.3 描述设计模式┊61.4 设计模式的编目┊71.5 组织编目┊81.6 设计模式怎样解决设计问题┊101.6.1 寻找合适的对象┊101.6.2 决定对象的粒度┊111.6.3 指定对象接口┊111.6.4 描述对象的实现┊121.6.5 运用复用机制┊151.6.6 关联运行时和编译时的结构┊181.6.7 设计应支持变化┊191.7 怎样选择设计模式┊221.8 怎样使用设计模式┊24第2章实例研究:设计一个文档编辑器┊252.1 设计问题┊272.2 文档结构┊272.2.1 递归组合┊282.2.2 图元┊292.2.3 组合模式┊312.3 格式化┊312.3.1 封装格式化算法┊312.3.2 Compositor和Composition┊322.3.3 策略模式┊332.4 修饰用户界面┊342.4.1 透明围栏┊342.4.2 Monoglyph┊352.4.3 Decorator模式┊362.5 支持多种视感标准┊372.5.1 对象创建的抽象┊372.5.2 工厂类和产品类┊382.5.3 Abstract Factory 模式┊402.6 支持多种窗口系统┊402.6.1 是否可以使用Abstract Factory模式┊402.6.2 封装实现依赖关系┊412.6.3 Window和WindowImp┊432.6.4 Bridge模式┊462.7 用户操作┊462.7.1 封装一个请求┊472.7.2 Command类及其子类┊472.7.3 撤销和重做┊482.7.4 命令历史记录┊492.7.5 Command模式┊502.8 拼写检查和断字处理┊502.8.1 访问分散的信息┊512.8.2 封装访问和遍历┊512.8.3 Iterator类及其子类┊522.8.4 Iterator模式┊552.8.5 遍历和遍历过程中的动作┊552.8.6 封装分析┊562.8.7 Visitor类及其子类┊592.8.8 Visitor模式┊602.9 小结┊60第3章创建型模式┊623.1 Abstract Factory(抽象工厂)—对象创建型模式┊663.2 Builder(生成器)—对象创建型模式┊743.3 Factory Method(工厂方法)—对象创建型模式┊813.4 Prototype(原型)—对象创建型模式┊893.5 Singleton(单件)—对象创建型模式┊963.6 创建型模式的讨论┊102第4章结构型模式┊1044.1 Adapter(适配器)—类对象结构型模式┊1064.2 Bridge(桥接)—对象结构型模式┊1154.3 Composite(组合)—对象结构型模式┊1234.4 Decorator(装饰)—对象结构型模式┊1324.5 Facade(外观)—对象结构型模式┊┊1394.6 Flyweight(享元)—对象结构型模式┊1464.7 Proxy(代理)—对象结构型模式┊1554.8 结构型模式的讨论 ┊1644.8.1 Adapter与Bridge┊1644.8.2 Composite、Decorator与Proxy┊164第5章行为型模式┊1665.1 Chain of Responsibility(职责链)—对象行为型模式┊1675.2 Command(命令)—对象行为型模式┊1755.3 Interpreter(解释器)—类行为型模式┊1835.4 Iterator(迭代器)—对象行为型模式┊1935.5 Mediator(中介者)—对象行为型模式┊2055.6 Memento(备忘录)—对象行为型模式┊2125.7 Observer(观察者)—对象行为型模式┊2195.8 State(状态)—对象行为型模式┊2275.9 Strategy(策略)—对象行为型模式┊2345.10 Template Method(模板方法)— 类行为型模式┊2425.11 Visitor(访问者)—对象行为型 模式┊2465.12 行为型模式的讨论┊2565.12.1 封装变化┊2565.12.2 对象作为参数┊2575.12.3 通信应该被封装还是被分布┊2575.12.4 对发送者和接收者解耦┊2585.12.5 总结┊260第6章结论┊2616.1 设计模式将带来什么┊2626.1.1 一套通用的设计词汇┊2626.1.2 书写文档和学习的辅助手段┊2636.1.3 现有方法的一种补充┊2636.1.4 重构的目标┊2646.2 本书简史┊2656.3 模式界┊2666.3.1 Alexander的模式语言┊2666.3.2 软件中的模式┊2676.4 邀请参与┊2676.5 临别感想┊268附录A词汇表┊269附录B图示符号指南┊273附录 C基本类┊277参考文献┊284 内容摘要 本书结合设计实例从面向对象的设计中精选出23个设计模式, 总结了面向对象设计中*有价值的经验, 并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、 表达清楚的软件设计模式, 这些模式在实用环境下特别有用。 本书适合大学计算机专业的学生、研究生及相关人员参考。 精彩内容 本书并不是一本介绍面向对象技术或设计的书,目前已有不少好书介绍面向对象技术或设计。本书假设你至少已经比较熟悉一种面向对象编程语言,并且有一定的面向对象设计经验。当我们提及“类型”和“多态”,或“接口”继承与“实现”继承的关系时,你应该对这些概念了然于胸,而不是迫不及待地翻阅手头的字典。另外,这也不是一篇不错专题技术论文,而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从一开始就采用的设计方案。它们反映了不为人知的重新设计和重新编码的成果,而这些都来自软件开发者为了设计出灵活、可复用的软件而长时间进行的艰苦努力。设计模式捕获了这些解决方案,并用简洁易用的方式表达出来。设计模式并不要求使用独特的语言特性,也不采用那些足以使你的朋友或老板大吃一惊的神奇的编程技巧。所有的模式均可以用标准的面向对象语言实现,这也许有时会比特殊的解法多费一些功夫,但是为了增加软件的灵活性和可复用性,多做些工作是值得的。一旦理解了设计模式并且有了一种“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.htmlE. G. 于加州Mountain ViewR. H. 于蒙特利尔R. J. 于伊利诺伊UrbanaJ. V. 于纽约 Hawthorne1994年8月所有结构良好的面向对象软件体系结构中都包含了许多模式。实际上,当我评估一个面向对象系统的质量时,所使用的方法之一就是要判断系统的设计者是否强调了对象之间的公共协同关系。在系统开发阶段强调这种机制的优势在于,它能使所生成的系统体系结构更加精巧、简洁和易于理解,其程度远远超过了未使用模式的体系结构。模式在构造复杂系统时的重要性早已在其他领域中得到认可。特别是,Christopher Alexander和他的同事们可能最先将模式语言(pattern language)应用于城市建筑领域,他的思想和其他人的贡献已经根植于面向对象软件界。简而言之,软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。在本书中,Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides介绍了设计模式的原理,并且对这些设计模式进行了分类描述。因此,该书做出了两个重要的贡献:首先,它展示了模式在构建复杂系统过程中所处的角色;其次,它为如何引用一组精心设计的模式提供了一个实用方法,以帮助实际开发者针对特定应用问题使用适当的模式进行设计。我曾荣幸地与本书的部分作者一同进行体系结构设计工作,从他们身上我学到了许多东西,相信阅读本书也能让你受益匪浅。Rational 软件公司首席科学家 Grady Booch
— 没有更多了 —
以下为对购买帮助不大的评价