设计模式:可复用面向对象软件的基础

[美] Erich Gamma

出版时间

2019-04-30

ISBN

9787111618331

评分

★★★★★

标签

编程

书籍介绍

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

AI导读
核心看点
  • 总结23种经典设计模式,奠定面向对象设计基础
  • 通过文档编辑器实例,深入解析模式应用场景
  • 强调针对接口编程及优先使用对象组合原则
适合谁读
  • 计算机专业学生、研究生及软件工程研究人员
  • 具备一定编程经验,希望提升架构能力的开发者
  • 对面向对象设计原则有深入探索需求的程序员
读前提醒
  • 建议结合Java或C#等现代语言资料辅助理解
  • 需具备扎实的面向对象编程基础,否则难懂
  • 重在理解设计思想与上下文,而非死记代码
读者共识
  • 经典之作但晦涩难读,需有实战经验方能融会贯通
  • 代码示例较老,但设计思想与原则依然极具价值
  • 不适合初学者,建议作为进阶参考书反复研读

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

精彩摘录
  • "将系统分解成对象集合。因为要考虑许多因素:封装、粒度、依赖关系、灵活性、性能、演化、复用等等,它们都影响着系统的分解,并且这些因素通常还是互相冲突的。"
  • "类型(type) 是用来标识特定接口的一个名字。"
  • "动态绑定是指发送的请求直到运行时刻才受你的具体的实现的约束。"
  • "进一步讲,动态绑定允许你在运行时刻彼此替换有相同接口的对象。这种可替换性就称为多态(polymorphism),它是面向对象系统中的核心概念之一。"
  • "抽象类(abstract class)(与之对应的还有非抽象类称为具体类(concrete class)。)的主要目的是为它的子类定义公共接口。一个抽象类将把它的部分或全部操作的实现延迟到子类中,因此,一个抽象类不能被实例化。"
  • "子类能够改进和重新定义它们父类的操作。更具体地说,类能够重定义(override)父类定义的操作,重定义使得子类能接管父类对请求的处理操作。"
  • "混入类(mixin class)是给其他类提供可选择的接口或功能的类。它与抽象类一样不能实例化。混入类要求多继承"
  • "针对接口编程,而不是针对实现编程。"
目录
出版者的话
赞誉
序言
前言
读者指南

显示全部
用户评论
还行
2020.09.05 ~ 2020.10.31
书很薄,但是内容很重要,不甘心做一个CURD程序员。
再次拜读一遍又有新的收货
设计的艺术,可见我离「编程」渐行渐远了。
正如书中所讲述的那样“这不是读完一遍就可以束之高阁的书”。只有在实际应用中去应用它,才能体会到设计模式带来的优势与艺术
刷完了,建议看之前先看重构和(或)代码简洁之道,都是为了复用和减少耦合 建议有一定编程经验再看,不然基本过目就忘 如果觉得读的不爽,可以先看headFirst设计模式
下载
收藏