inFusion错误类型分析

更新时间:2023-05-11 21:02:15 阅读: 评论:0

1 God Class
1.1 特征
上帝类通常为过多的操做其他类的数据,从而破坏了类的封装性。上帝类从其他类中获得功能,同时增加了自身的耦合性,通常会导致自己体积过大和较大的复杂度。
判断一个上帝类的标准有:
1. CPFD (Capsules Providing Foreign Data) 从多个不相关类(模块)中引用数据
2. WOC(Weighted Operation Count)类的所有函数的圈复杂度之和超过65
3. TCC (Tight Capsule Cohesion)TCC < 1/3 类需要具有低内聚的特性(类中直接相关的方法与全部方法之比小于1/3),也就是较少的private方法
4. 需要同时满足以上条件才可以被认定为上帝类
1.2 修改
破坏CPFD, WOC, TCC 中的一个。
2 Message Chains
2.1 特征
过度耦合的消息链
如果你看到用户向一个对象索求(request)另一个对象,然后再向后者索求另一个对象,然后再索求另一个对象……这就是Message Chains。实际代码中你看到的可能是一长串ge
tThis()或一长串临时变量。采取这种方式,意味客户将与查找过程中的航行结构(structure of the navigation)紧密耦合。一旦对象间的关系发生任何变化,客户端就不得不做出相应修改。
Infusion通常会寻找具有较多调用其他类数据访问接口的方法,而且会检查返回值是否匹配。
2.2 修改
采用“隐藏委托关系”修改。
先观察Message Chains最终得到的对象是用来干什么的,看看能否以 Extract Method 把使用该对象的代码提炼到一个独立函数中,再运用Move Method 把这个函数推入Message Chains。
3 FeatureEnvy
3.1 特征
函数对某个class的兴趣高过对自己所处之host class的兴趣。最通常的焦点便是数据,通常为某个函数为了计算某值,从另一个对象那儿调用几乎太多取值函数(getting method)。

本文发布于:2023-05-11 21:02:15,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/104942.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   数据   函数   方法   上帝   调用   关系
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图