代码坏味道 - 耦合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码坏味道 - 耦合相关的知识,希望对你有一定的参考价值。
耦合
Feature Envy
症状:
方法访问其他类的对象的属性,而不是自己的。
成因:
最常见的问题就是由数据类引起的。
治疗:
多数时候,同时需要做出改变的code 应该在一起。
收益:
不合适的亲密
症状:
一个类有大量的访问另一个类的属性和方法,类之间的联系千丝万缕。
成因:
治疗:
变双向依赖为单向
单点接触
收益:
消息链
症状:
a.b().c().d()
有什么不好吗? 客户对这关系知道的太多了,修改关系就意味着修改所有客户。
成因:
治疗:
隐藏委托,变单点接触。a 通过b 找到c ,调用c 的方法,改成 a调用b 的方法。
考虑是否可以把方法移动到客户端,客户自足。
收益:
减少依赖
中间人
症状:
一个类仅仅就是为了把行为委托给其他类,那它没有存在的必要。
成因:
过渡使用去除消息链的方法的结果;
治疗:
如果一个类的大多数方法都委托给其他类,那就移调中间人,采用消息链。
收益:
不完整的库类 --
这也是 坏味道?
症状:
库不能满足需要,但它又是只读的。
成因:
治疗:
在本地添加一个方法,在库的基础上实现更多功能;
继承库的类
收益:
不用再实现一遍库里已经提供的代码
以上是关于代码坏味道 - 耦合的主要内容,如果未能解决你的问题,请参考以下文章