中间人指的是一种过度使用委托的代码,《重构》中给了一个参考值,如果一个类中有一半的方法都委托给其他对象进行, 为什么中间人是一种代码坏味道? 过度使用委托。这意味着当需求发生某些的变化的时候,这个中间人的类总是被牵连进来一并修改。这种中间人代码越多,浪费掉的时间也就越多。 如何解决中间人这种代码坏...
实际代码就是一长串的getThis()或者一长串临时变量。 使用隐藏“委托关系”(这个后面会讲)来进行重构。当然了,可以在消息链的任何位置运用。 十六、Middle Man(中间人) 过度运用委托。 1、某个类接口有一半的函数都委托给其他类,这时应“移除中间人”:让客户直接调用委托类。 2、如果只有少数几个函数,那就直接...
中间人 类中的函数存在过度委托给其他对象的情况。 多余的代码,中间人作用小。 使用Remove Middle Man(移除中间人)来减少无用的委托对象 InappropriateIntimacy(狎昵关系) 两个类过于亲密,花费太多时间去探究彼此的private成分 解决方案: 使用move method和move field帮它们划清界线 使用extract class把两者共同点提炼到...
12. Lazy Class 冗赘类 13. Speculative Generality 夸夸其谈未来性 14. Temporary Field 令人迷惑的暂时字段 15. Message Chains 过度耦合的消息链 16. Middle Man 中间人 17. Inappropriate Intimacy 狎昵关系 18. Alternative Classes with Different Interfaces 异曲同工的类 19. Incomplete Library Class 不完美...
文档标签: fvc Class Extract Method Long Data 味道 代码 系统标签: fvc 代码 味道 extract 霰弹 中间人 DuplicatedCode(重复的代码):ExtractMethod,PullUpMethod,FormTemplate Method,SubstituteAlgorithm 2、LongMethod(过长函数):ExtractMethod,ReplaceTempwithQuery 3、LargeClass(过大的类):ExtractClass,ExtractSubc...
2.10. 中间人类 2.10.1. 仅将功能委托给其他对象2.10.2. 舍弃中间人直接和处理相应职责的类进行交互2.10.3. 将其与现有类合并 2.11. 孤立的变量和常量类 2.11.1. 使用一个独立的类来定义系统不同部分使用的变量和常量2.11.2. 丢失其上下文而无法表达任何实际含义2.11.3. 移动到使用它们的位置 2...
这样的代码容易让人不解,因为你通常认为对象在所有时候都需要它的所有变量。 在变量未被使用的情况下猜测当初设置目的,会让你发疯。 14. 无用的中间人过度使用委托。你也许会看到某个类的接口有一半的函数都委托给其他类,这样就过度运用了。所以,删除无用的中间人。 15. 狎昵关系有时你会看到两个类过于亲密,...
2.10.中间人类 2.10.1.仅将功能委托给其他对象 2.10.2.舍弃中间人直接和处理相应职责的类进行交互 2.10.3.将其与现有类合并 2.11.孤立的变量和常量类 2.11.1.使用一个独立的类来定义系统不同部分使用的变量和常量 2.11.2.丢失其上下文而无法表达任何实际含义 2.11.3.移动到使用它们的位置 2.12.基本类型偏执 2....
2.10. 中间人类 2.10.1. 仅将功能委托给其他对象 2.10.2. 舍弃中间人直接和处理相应职责的类进行交互 2.10.3. 将其与现有类合并 2.11. 孤立的变量和常量类 2.11.1. 使用一个独立的类来定义系统不同部分使用的变量和常量 2.11.2. 丢失其上下文而无法表达任何实际含义 2.11.3. 移动到使用它们的位置 2.12. ...
重复代码就是不同地点,有着相同的程序结构。一般是因为需求迭代比较快,开发小伙伴担心影响已有功能,就复制粘贴造成的。重复代码很难维护的,如果你要修改其中一段的代码逻辑,就需要修改多次,很可能出现遗漏的情况。 如何优化重复代码呢?分三种情况讨论: 同一个类的两个函数含有相同的表达式 ...