代码坏味道 - 耦合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码坏味道 - 耦合相关的知识,希望对你有一定的参考价值。


耦合


Feature Envy

症状:

 方法访问其他类的对象的属性,而不是自己的。

 

成因:

最常见的问题就是由数据类引起的。

治疗:

多数时候,同时需要做出改变的code 应该在一起。

 

收益:

 


不合适的亲密

症状:

一个类有大量的访问另一个类的属性和方法,类之间的联系千丝万缕。

成因:

 

治疗:

变双向依赖为单向

单点接触

收益:

 


消息链

症状:

a.b().c().d()

有什么不好吗? 客户对这关系知道的太多了,修改关系就意味着修改所有客户。

成因:

 

治疗:

隐藏委托,变单点接触。a 通过b 找到c ,调用c 的方法,改成 a调用b 的方法。 

考虑是否可以把方法移动到客户端,客户自足。

收益:

减少依赖


中间人

症状:

一个类仅仅就是为了把行为委托给其他类,那它没有存在的必要。

成因:

过渡使用去除消息链的方法的结果;

治疗:

如果一个类的大多数方法都委托给其他类,那就移调中间人,采用消息链。 

收益:


不完整的库类  -- 

这也是 坏味道?

症状:

库不能满足需要,但它又是只读的。

成因:

 

治疗:

在本地添加一个方法,在库的基础上实现更多功能;

继承库的类

收益:

不用再实现一遍库里已经提供的代码

以上是关于代码坏味道 - 耦合的主要内容,如果未能解决你的问题,请参考以下文章

重构-坏代码的味道

代码坏味道

代码的坏味道与重构技术

我的重构识别代码的坏味道

Bad Smell (代码的坏味道)

25种代码坏味道总结+优化示例