Che*_* OT 15 language-agnostic refactoring
两种气味都在福勒的书"重构"中有所描述.
我知道这些气味的含义是:
看起来两种气味都表明一个对象的一部分太多依赖于另一个对象.
有人可以解释这两种气味之间的主要区别吗?
Dav*_*uth 14
你描述得很好.
不恰当的亲密关系意味着妥协其他类的封装,例如直接访问不应直接访问的实例变量.很坏.修复抓取类只使用受感染类的公共功能,如果可能,更改受损类,以便其他类无法获取其私有功能.
Feature Envy是指一个方法使用另一个类的公共特征而不是它自己的公共特征.没有那么糟糕,因为(假设其他类的公共功能可以安全使用),它不会导致错误.但它确实导致设计纠缠在两个类之间.通过向令人羡慕的类添加更高级别(更好抽象的)公共特性,或者将方法从羡慕的类移动到令人羡慕的类来修复,以便羡慕的类具有较少的调用方法.