WEB开发网
开发学院软件开发Java 演化架构与紧急设计: 积累惯用模式 阅读

演化架构与紧急设计: 积累惯用模式

 2010-01-20 00:00:00 来源:WEB开发网   
核心提示: 图 1. ckjm 指标结果表图 2 显示相同的表,按 Weight Methods per Class(WMC)排序:图 2. ckjm 指标,演化架构与紧急设计: 积累惯用模式(3),按 WMC 排序单看这个结果,可以认为 DoubleListUIBean 类是 Struts 代码库中最复杂


图 1. ckjm 指标结果表
演化架构与紧急设计: 积累惯用模式

图 2 显示相同的表,按 Weight Methods per Class(WMC)排序:


图 2. ckjm 指标,按 WMC 排序
演化架构与紧急设计: 积累惯用模式

单看这个结果,可以认为 DoubleListUIBean 类是 Struts 代码库中最复杂的类。这意味着可以将这个类作为重构的候选目标,试着减少一些复杂性,并看看是否能发现可抽象的、重复的模式。然而,WMC 数字并不能告诉您是否值得花时间重构这个类,以改进设计。注意这个类的 Ca(传入耦合)指标,它的值为 3。这意味着只有 3 个其他的类使用这个类。花费大量的时间改进这个类的设计也许并不值得。

图 3 显示相同的 CKJM 结果,这一次按 Ca 排序:


图 3. ckjm 结果,按 Ca(传入耦合)排序
演化架构与紧急设计: 积累惯用模式

这个组合的视图表明,Struts 中最常用的类是 Component(这并不奇怪,因为 Struts 是一个 Web 框架)。虽然 Component 不如 DoubleListUIBean 复杂,但是有 177 个其他的类使用它,因此很适合作为改进设计的目标。使 Component 的设计变得更好,可以在很多其他的类上取得良好的连锁反应。

通过 图 3 所示的视图,可以逐个查看复杂度和引用次数。要发现有设计挑战的类,可以看看两个数字都比较高的组合(即被很多其他类使用的复杂的类)。我首先选择的用于研究的类是 UIBean 类,它的圈复杂度是 53,传入耦合是 22。这是一个被很多其他类使用的复杂的类,所以我将对它作进一步的研究。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:演化 架构 紧急

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接