Design Patterns

Erich Gamma

出版时间

1994-10-31

ISBN

9780201633610

评分

★★★★★

标签

编程

书籍介绍

* Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. * The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.

AI导读
核心看点
  • 总结23种经典设计模式,是软件工程领域的开山鼻祖之作。
  • 提炼面向对象设计经验,提供可复用、经过验证的解决方案。
  • 强调针对接口编程与对象组合,提升系统灵活性与可维护性。
适合谁读
  • 计算机专业学生及研究生,用于系统学习软件设计理论。
  • 具备一定开发经验的程序员,用于提升架构设计与重构能力。
  • 从事软件工程、系统设计及相关领域的专业技术人员参考。
读前提醒
  • 建议阅读英文原版,中文译本质量参差不齐,影响理解体验。
  • 需具备扎实的面向对象基础,否则概念抽象,难以深入理解。
  • 结合项目实战经验阅读,缺乏实践背景者易觉枯燥晦涩难懂。
读者共识
  • 被誉为设计模式圣经,地位崇高,但学术风格导致阅读门槛高。
  • 初读往往不知所云,需有失败开发经历后重读方能顿悟其价值。
  • 适合作为案头手册查阅,配合通俗教程辅助学习效果更佳。

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

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

显示全部
用户评论
经典中经典。有些pattern还是太简单了,但作为程序的building block...还是有用的。
這是一個 problem-solution 的列表,如果你要解決的問題和書中提到的類似,不妨參考下它提出的解決方案。
如果觉得收获不大,可以看看:addison wesley出版的applying uml and patterns - an introduction to object-oriented analysis。根据这个书做了一个图文混排编辑器,支持多columns,还是有收获的。
Currently studying the Decorator pattern (p. 179). And Decorator vs. Strategy pattern.
公司内部培训中读完
当历史书看是考古,当技术书看是糟粕。 果然有些事情还是上手比空谈有意义…… 不过也了解到了以前时代的软件设计,一个C 语言啥都能写,因为语言的限制还需此书研究茴字有几种写法,而如今各个语言在各自的领域不断深耕发展,当今的程序世界真的是百花齐放。
原始本了
我觉得代码写多了,大部分模式都能自己摸索出来。看这本书的好处在于,了解某些约定俗成的东西对看项目源码特别有帮助。(2021-09-12)
spring 2021
下载
收藏