代码坏的味道07:依恋情结(Feature Envy)
2010-08-02 09:30
549 查看
函数对某个类的兴趣高过对自己所处的类,通常的焦点就是数据,某个函数为了计算某个值,从另一个对象那儿调用几乎半打的取值函数。这时一个运用 Move Method (搬移函数)把它移到自己该去的地方。有时候函数中只有一部分受这种依恋之苦,这时候使用Extract Method (提炼函数)把这部分提炼到独立函数中,再使用Move Method (搬移函数)带它去它的梦中家园。
一个函数往往会用到几个类的功能,那么它究竟该被置与何处呢?原则:判断哪个类拥有最多被此函数使用的数据,然后就把这个函数和那些数据摆在一起。如果先以Extract Method (提炼函数)将这个函数分解为数个较小函数并分别置于不同地点,上述步骤就比较容易完成了。
一个函数往往会用到几个类的功能,那么它究竟该被置与何处呢?原则:判断哪个类拥有最多被此函数使用的数据,然后就把这个函数和那些数据摆在一起。如果先以Extract Method (提炼函数)将这个函数分解为数个较小函数并分别置于不同地点,上述步骤就比较容易完成了。
相关文章推荐
- 代码的坏味道之七 :Feature Envy(依恋情结)
- 3.7 Feature envy(依恋情结)
- 代码坏味道与启发--《代码整洁之道》总结
- 重构笔记——代码的坏味道(上)
- 代码坏的味道17:狎昵关系 (Inappropriate Intimacy)
- 代码的坏味道(bad smell)
- 代码的坏味道之六 :Shotgun Surgery(散弹式修改)
- 代码的坏味道之十三 :Speculative Generality(夸夸其谈未来性)
- 代码的坏味道之十四 :Temporary Field(令人迷惑的暂时值域)
- Spring代码实例系列-07:Spring AOP面向切面,模拟实现事物控制
- 代码的坏味道-目录
- 六种可定量分析的代码味道
- 22种代码的坏味道,一句话概括
- Refactoring之——代码的坏味道(一)过长方法
- 重构 之代码的坏味道(Bad smell)
- dSYM atos crash log 定位到代码行的方法 (2012-06-07 09:36:09)
- 你嗅到了代码腐化的味道了吗?
- 重构——代码的坏味道 (1)
- Bad Smell(代码的坏味道)
- 重构改善既有代码的设计--代码的坏味道