展开全部

主编推荐语

展示了一种应用模式和重构的创新方法,而且有助于读者透过实战深入理解重构和模式。

内容简介

开创性地深入揭示了重构与模式这两种软件开发关键技术之间的联系,说明了通过重构实现模式改善既有的设计,往往优于在新的设计早期使用模式。书中不仅展示了一种应用模式和重构的创新方法,而且有助于读者透过实战深入理解重构和模式。书中讲述了27种重构方式。本书适于面向对象软件开发人员阅读,也可作为高等学校计算机专业、软件工程专业师生的参考读物。

目录

  • 版权信息
  • 内容提要
  • 版权声明
  • 对本书的赞誉
  • 译者序
  • Ralph Johnson序
  • Martin Fowler序
  • 前言
  • 第1章 本书的写作缘由
  • 1.1 过度设计
  • 1.2 模式万灵丹
  • 1.3 设计不足
  • 1.4 测试驱动开发和持续重构
  • 1.5 重构与模式
  • 1.6 演进式设计
  • 第2章 重构
  • 2.1 何谓重构
  • 2.2 重构的动机
  • 2.3 众目睽睽
  • 2.4 可读性好的代码
  • 2.5 保持清晰
  • 2.6 循序渐进
  • 2.7 设计欠账
  • 2.8 演变出新的架构
  • 2.9 复合重构与测试驱动的重构
  • 2.10 复合重构的优点
  • 2.11 重构工具
  • 第3章 模式
  • 3.1 何谓模式
  • 3.2 模式痴迷
  • 3.3 实现模式的方式不止一种
  • 3.4 通过重构实现、趋向和去除模式
  • 3.5 模式是否会使代码更加复杂
  • 3.6 模式知识
  • 3.7 使用模式的预先设计
  • 第4章 代码坏味
  • 4.1 重复代码(Duplicated Code)
  • 4.2 过长函数(Long Method)
  • 4.3 条件逻辑太复杂(Conditional Complexity)
  • 4.4 基本类型偏执(Primitive Obsession)
  • 4.5 不恰当的暴露(Indecent Exposure)
  • 4.6 解决方案蔓延(Solution Sprawl)
  • 4.7 异曲同工的类(Alternative Classes with Different Interfaces)
  • 4.8 冗赘类(Lazy Class)
  • 4.9 过大的类(Large Class)
  • 4.10 分支语句(Switch Statement)
  • 4.11 组合爆炸(Combinatorial Explosion)
  • 4.12 怪异解决方案(Oddball Solution)
  • 第5章 模式导向的重构目录
  • 5.1 重构的格式
  • 5.2 本目录中引用的项目
  • 5.2.1 XML Builder
  • 5.2.2 HTML Parser
  • 5.2.3 贷款风险计算程序
  • 5.3 起点
  • 5.4 学习顺序
  • 第6章 创建
  • 6.1 用Creation Method替换构造函数
  • 6.1.1 动机
  • 6.1.2 做法
  • 6.1.3 示例
  • 6.1.4 变体
  • 6.2 将创建知识搬移到Factory
  • 6.2.1 动机
  • 6.2.2 做法
  • 6.2.3 示例
  • 6.3 用Factory封装类
  • 6.3.1 动机
  • 6.3.2 做法
  • 6.3.3 示例
  • 6.3.4 变体
  • 6.4 用Factory Method引入多态创建
  • 6.4.1 动机
  • 6.4.2 做法
  • 6.4.3 示例
  • 6.5 用Builder封装Composite
  • 6.5.1 做法
  • 6.5.2 示例
  • 6.5.3 变体
  • 6.6 内联Singleton
  • 6.6.1 动机
  • 6.6.2 做法
  • 6.6.3 示例
  • 第7章 简化
  • 7.1 组合方法
  • 7.1.1 动机
  • 7.1.2 做法
  • 7.1.3 示例
  • 7.2 用Strategy替换条件逻辑
  • 7.2.1 动机
  • 7.2.2 做法
  • 7.2.3 示例
  • 7.3 将装饰功能搬移到Decorator
  • 7.3.1 动机
  • 7.3.2 做法
  • 7.3.3 示例
  • 7.4 用State替换状态改变条件语句
  • 7.4.1 动机
  • 7.4.2 做法
  • 7.4.3 示例
  • 7.5 用Composite替换隐含树
  • 7.5.1 动机
  • 7.5.2 做法
  • 7.5.3 示例
  • 7.6 用Command替换条件调度程序
  • 7.6.1 动机
  • 7.6.2 做法
  • 7.6.3 示例
  • 第8章 泛化
  • 8.1 形成Template Method
  • 8.1.1 动机
  • 8.1.2 做法
  • 8.1.3 示例
  • 8.2 提取Composite
  • 8.2.1 动机
  • 8.2.2 做法
  • 8.2.3 示例
  • 8.3 用Composite替换一/多之分
  • 8.3.1 动机
  • 8.3.2 做法
  • 8.3.3 示例
  • 8.4 用Obschmerver替换硬编码的通知
  • 8.4.1 动机
  • 8.4.2 做法
  • 8.4.3 示例
  • 8.5 通过Adapter统一接口
  • 8.5.1 动机
  • 8.5.2 做法
  • 8.5.3 示例
  • 8.6 提取Adapter
  • 8.6.1 动机
  • 8.6.2 做法
  • 8.6.3 示例
  • 8.6.4 变体
  • 8.7 用Interpreter替换隐式语言
  • 8.7.1 动机
  • 8.7.2 做法
  • 8.7.3 示例
  • 第9章 保护
  • 9.1 用类替换类型代码
  • 9.1.1 动机
  • 9.1.2 做法
  • 9.1.3 示例
  • 9.2 用Singleton限制实例化
  • 9.2.1 动机
  • 9.2.2 做法
  • 9.2.3 示例
  • 9.3 引入Null Object
  • 9.3.1 动机
  • 9.3.2 做法
  • 9.3.3 示例
  • 第10章 聚集操作
  • 10.1 将聚集操作搬移到Collecting Parameter
  • 10.1.1 动机
  • 10.1.2 做法
  • 10.1.3 示例
  • 10.2 将聚集操作搬移到Visitor
  • 10.2.1 动机
  • 10.2.2 做法
  • 10.2.3 示例
  • 第11章 实用重构
  • 11.1 链构造函数
  • 11.1.1 动机
  • 11.1.2 做法
  • 11.1.3 示例
  • 11.2 统一接口
  • 11.2.1 动机
  • 11.2.2 做法
  • 11.2.3 示例
  • 11.3 提取参数
  • 11.3.1 动机
  • 11.3.2 做法
  • 11.3.3 示例
  • 参考文献
  • 索引
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0
    常翻常新

    这本书需要与 Martin Fowler 的重构一书结合阅读,常翻常新。熟悉重构的手法,是为我们的编程工作提供了工具箱。不必最开始时做出完美的大设计,这也不符合敏捷开发的原则。能知道出现需求变更时有什么工具可用,会使得我们更加游刃有余。这本书给我的另一个启发是,现实中的关于实体的模型只是应当作为编程建模的参考,根据语义的模糊性以及处理逻辑的需要,我们要去开发更适合当前工程的类以及类之间的关系。这本书也介绍了特定的模式出现的原因,为什么要使用某种设计模式。比如工厂模式,是为了解决 C++ 和 Java 当中构造函数不能灵活命名和构造函数过多的问题。不要为了使用模式而使用。

      转发
      评论

    出版方

    人民邮电出版社

    人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。