美文网首页TDD(测试驱动开发)
重构坏味道:过长的消息链

重构坏味道:过长的消息链

作者: Ps天花乱坠 | 来源:发表于2018-01-23 17:19 被阅读0次

过度耦合的消息链

症状

如果你看到一个对象请求另一个对象,然后在向后者请求另一个对象,然后在请求另一个对象类似:getPerson().getDepartment().getAddress().getStreet()
,这就是消息链

Message Chains

病因

由于开发者自己知道程序结构的组成所以就放肆的调用,换句话说是因为知道的太多了导致的(迪米特法则)

导致的健康问题

采取这种方式,意味者客户端代码将与查找过程中的链条结构紧密耦合,一旦链条间的任何对象发生变化,客户端就不得不做出相应修改这样的话无形中增加了开发成本。

治疗

Message Chains Refactoring
  • 运用 Hide Delegate 对于每个委托关系中的函数,在服务对象端建立一个简单的委托函数
  • 调整客户端,令它只调用服务对象提供的简单委托函数
  • 如果使用者和服务提供者不在同一个包,考虑修改简单委托函数的访问权限,让客户端

康复

  • 减少了类之间的依赖链,适当的封装,使得修改成本变低。
  • 减少了代码量,消除了部分消息链臃肿的重复代码。


    Message Chains After Refactoring

相关文章

  • 重构坏味道:过长的消息链

    过度耦合的消息链 症状 如果你看到一个对象请求另一个对象,然后在向后者请求另一个对象,然后在请求另一个对象类似:g...

  • 重构坏味道:过长的函数

    过长的函数 症状 一个方法包含了太多的代码行,做了很多不同的事情。Long Method 病因 在早期编程语言,调...

  • 重构坏味道:过长的参数列

    过长的参数列 症状 一个函数拥有大于3个甚至更多的参数,而且调用链上的每个函数可能都需要你传递不同的参数,或者某几...

  • 坏味道与重构手法

    坏味道(英文)坏味道(中文)页码常用重构Alternative Classes with Different In...

  • 《徐昊-TDD项目实战70讲》学习笔记 -- Day 4

    02|TDD演示(2):识别坏味道与代码重构 识别坏味道 利用多态替换条件分支 TDD 的红 / 绿 / 重构循环...

  • 重构:改善既有代码的设计

    书中的简单实用的重构方法基本上都是针对代码的Bad Smell,书中常见的坏味道:重复代码,过长函数,太大的类...

  • 架构重构实践

    局部架构重构 1. 架构重构的驱动力 坏味道驱动 规划驱动 架构组织与架构过程中的重构 2. 坏味道如何判断 以下...

  • 重构-坏的味道

    Duplicated Code(重复代码) 场景与处理 同一个类的两个函数含有相同的表达式Extract Meth...

  • 这些代码有点臭,重构大法带你秀(SPI接口化)

    如果说 正常的重构 是为了消除 代码 的坏味道, 那么 高层次的重构 就是消除 架构 的坏味道 最近由于需要将公司...

  • 重构(三) -- 代码的坏味道

    味道 重构中的味道是用来形容重构时机的一些场景 常见坏味道 重复代码(duplicated code)1:同一个类...

网友评论

    本文标题:重构坏味道:过长的消息链

    本文链接:https://www.haomeiwen.com/subject/dicdoxtx.html