设计模式

[美] Erich Gamma

出版时间

2000-08-31

ISBN

9787111075752

评分

★★★★★

标签

编程

书籍介绍
这不是一本读一遍就能上手的工具书,而更像一面照见自己编程功力的镜子。许多读者坦言:买了好几年仍觉得「半瓶水」,直到某个毫无准备的夜晚忽然「行云流水」,才真正领会——这种延迟的顿悟,恰是它最独特的价值。它不发明新东西,只收录在不同系统中反复被验证过的成功设计,并系统命名、给出动机。它适合谁?不是速成党,而是愿意在每一个模式前停下来自省:「我遇到的那个问题,能否用这种方式解决」的程序员。它薄,却值得当手册查、也值得当读物慢慢磨;翻到最后若生出几分「浮云」之感,或许正是你已将它内化为本能。
作者简介
四位作者均是国际公认的面向对象软件领域的专家。 Erich Gamma博士是瑞士苏黎士国际面向对象技术软件中心的技术主管。 Richard Helm博士是澳大利亚悉尼IBM顾问集团公司面向对象技术公司的成员。 Ralph Johnson博士是Urbana-Champaign伊利诺大学计算机科学系成员。 John Vlissides博士是位于纽约Hawthorne的IBN托马斯J.沃森研究中心的研究人员。
AI导读
核心看点
  • 精选23种经典设计模式,总结OO设计经验
  • 强调针对接口编程,优先使用对象组合
  • 收录多次验证的成功设计,非理论空谈
读者共识
  • 被誉为设计模式领域的圣经,地位崇高
  • 内容极具价值,但阅读门槛较高较晦涩
  • 需结合实战经验反复阅读方能真正领悟
精彩摘录
  • "将系统分解成对象集合。因为要考虑许多因素:封装、粒度、依赖关系、灵活性、性能、演化、复用等等,它们都影响着系统的分解,并且这些因素通常还是互相冲突的。"
  • "类型(type) 是用来标识特定接口的一个名字。"
  • "动态绑定是指发送的请求直到运行时刻才受你的具体的实现的约束。"
  • "进一步讲,动态绑定允许你在运行时刻彼此替换有相同接口的对象。这种可替换性就称为多态(polymorphism),它是面向对象系统中的核心概念之一。"
  • "抽象类(abstract class)(与之对应的还有非抽象类称为具体类(concrete class)。)的主要目的是为它的子类定义公共接口。一个抽象类将把它的部分或全部操作的实现延迟到子类中,因此,一个抽象类不能被实例化。"
  • "子类能够改进和重新定义它们父类的操作。更具体地说,类能够重定义(override)父类定义的操作,重定义使得子类能接管父类对请求的处理操作。"
  • "混入类(mixin class)是给其他类提供可选择的接口或功能的类。它与抽象类一样不能实例化。混入类要求多继承"
  • "针对接口编程,而不是针对实现编程。"
目录
序言
前言
读者指南
第1章 引言
第2章 实例研究:设计一个文档编辑器

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