美文网首页
[7] Feature Envy(依恋情节)

[7] Feature Envy(依恋情节)

作者: rxdxxxx | 来源:发表于2015-12-20 20:19 被阅读405次

    7 Feature Envy(依恋情节)


    对象技术的全部要点在于:这个是一种"将数据和对数据的操作行为包装在一起"的技术.

    有一种经典气味是:函数对某个类的兴趣高过于对自己所处类的兴趣.这种仰慕之情最通常的焦点便是数据.

    疗法显而易见:把这个函数移动到另一个类中.有时候函数中只有一部分受这种依恋之苦. 这时候应该使用Extract Method把这一部分提炼传来到独立函数中, 在使用Move Method带它到它的梦中乐园.

    当然,并非所有情况都这么简单. 一个函数往往会用到几个类的功能, 那么它究竟该何去何从呢? 我们的原则是:判断哪个类拥有最多被此函数使用的数据.然后就把这个函数和那些数据摆到一起. 如果先以Extract Method 将这个函数分成数个较小的函数,并非别放置于不同地点,上述步骤也就比较容易完成了.

    最根本的原则是: 将总是一起变化的东西放在一起. 数据和引用数据的行为总是一起变化的,但也有例外. 如果例外出现,我们就搬移那些行为,保持变化只在一地发生. StrategyVisitor使你得以轻松修改函数行为,因为它们将少数需被覆写的行为隔离开来--当然也付出了"多一层间接性"的代价.

    相关文章

      网友评论

          本文标题:[7] Feature Envy(依恋情节)

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