设计模式 - [美] Erich Gamma

设计模式

[美] Erich Gamma

出版时间

2000-08-31

ISBN

9787111075752

评分

★★★★★

标签

编程

书籍介绍

这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。

书中涉及的设计模式并不描述新的或未经证实的设计,只收录了那些在不同系统中多次使用过的成功设计。

AI导读
核心看点
  • 精选23种经典设计模式,总结OO设计经验
  • 强调针对接口编程,优先使用对象组合
  • 收录多次验证的成功设计,非理论空谈
适合谁读
  • 计算机专业学生及研究生参考学习
  • 具备一定经验的软件工程师进阶阅读
  • 从事软件工程与系统设计的开发人员
读前提醒
  • 翻译质量参差不齐,建议结合英文原版
  • 无项目经验者可能觉得枯燥难懂,需耐心
  • 适合有实际开发痛点后作为手册查阅
读者共识
  • 被誉为设计模式领域的圣经,地位崇高
  • 内容极具价值,但阅读门槛较高较晦涩
  • 需结合实战经验反复阅读方能真正领悟

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "将系统分解成对象集合。因为要考虑许多因素:封装、粒度、依赖关系、灵活性、性能、演化、复用等等,它们都影响着系统的分解,并且这些因素通常还是互相冲突的。"
  • "类型(type) 是用来标识特定接口的一个名字。"
  • "动态绑定是指发送的请求直到运行时刻才受你的具体的实现的约束。"
  • "进一步讲,动态绑定允许你在运行时刻彼此替换有相同接口的对象。这种可替换性就称为多态(polymorphism),它是面向对象系统中的核心概念之一。"
  • "抽象类(abstract class)(与之对应的还有非抽象类称为具体类(concrete class)。)的主要目的是为它的子类定义公共接口。一个抽象类将把它的部分或全部操作的实现延迟到子类中,因此,一个抽象类不能被实例化。"
  • "子类能够改进和重新定义它们父类的操作。更具体地说,类能够重定义(override)父类定义的操作,重定义使得子类能接管父类对请求的处理操作。"
  • "混入类(mixin class)是给其他类提供可选择的接口或功能的类。它与抽象类一样不能实例化。混入类要求多继承"
  • "针对接口编程,而不是针对实现编程。"
作者简介
四位作者均是国际公认的面向对象软件领域的专家。 Erich Gamma博士是瑞士苏黎士国际面向对象技术软件中心的技术主管。 Richard Helm博士是澳大利亚悉尼IBM顾问集团公司面向对象技术公司的成员。 Ralph Johnson博士是Urbana-Champaign伊利诺大学计算机科学系成员。 John Vlissides博士是位于纽约Hawthorne的IBN托马斯J.沃森研究中心的研究人员。
目录
序言
前言
读者指南
第1章 引言
第2章 实例研究:设计一个文档编辑器

显示全部
用户评论
花了一个下午挑感兴趣的内容浏览了第一遍,对提到的各种模式有了初步认识。读这本书是一个自省的过程,读到的每个设计模式自己都会反思曾经怎样用过,或者曾遇到的问题可否参考这种方式解决。GoF 总结的思想富于洞见性,但论文式的讲解风格实在不合口味, 某些解释还是搜其他人的 essay 更便于消化
书是好书,可惜是程序员写的,太难读了
设计模式的圣经。
粗略看了一遍,翻译得还是比较狗。设计模式是一种经验性质的合集,基本上在实际用过的那些模式就可以直接过掉了。
剩下几个看起来好牛逼的模式没看, 看了估计也看不懂, 反正近期也不会看了
启迪性与实际设计经验成正比的一本工具书,从能看懂到真正读懂之间可能会跨越很长一个时间段。
不打算专门抽时间研读,但会作为desktop reference之一。我最会参考的部分是各个设计模式的使用场景和利弊(确实也值得参考),具体实现对我来说意义不大。
原书有高屋建瓴的深度和广度,但是翻译实在看得我云里雾里,不知所云,还不如网课清晰易懂
草草快速的过完一遍
初阅不识书中意,读罢始觉黄金屋。
下载
收藏