练习 1.4:解决结构问题

本练习假设您已经完成了练习 1.1:导入要求的资源。在练习 1.4 中您将先读到一个用户场景。然后,您就担当用户场景中描述的软件设计人员的角色,并使用您在练习1.1 中导入的项目来完成练习。



用户场景

要检查代码明确寻找循环依赖关系,设计人员就要运行仅查找此类依赖关系的结构分析代码复审。代码复审确实找到一些循环依赖关系,设计人员也注意到它们中的一些有快速修订。快速修订是提供用来修复常见发现结果的自动方法。为重构代码去除循环,设计人员会将快速修订应用于一个循环依赖关系。

在最后的练习中,设计人员运行代码复审并修正一个发现结果。



练习

在本练习中,您执行以下任务:

  1. 运行代码复审来查找循环依赖关系。
  2. 找出循环依赖关系何时有提供的快速修订。
  3. 应用快速修订来解决循环依赖关系:
  4. 收到快速修订已经应用的确认。


选择代码复审来查找循环依赖关系

要选择查找循环依赖关系的代码复审:

  1. 在“代码复审”视图的工具栏上,单击管理规则图标,
  2. “代码复审”视图

  3. 选择代码复审列表中,单击结构分析代码复审
  4. 展开结构分析文件夹,并清除除循环依赖关系子文件夹之外的所有内容。
  5. 展开循环依赖关系子文件夹,来查看将在代码复审中应用的规则,如以下屏幕捕捉所示。单击确定
  6. “首选项”窗口



选择要复审的代码库

要选择工作区作为要复审的代码库:

运行代码复审

一旦选择了要复审的代码库,代码复审就开始运行。您可以通过检查视图右下角的进度条,来跟踪代码复审的状态。



查看找到的循环依赖关系列表

代码复审找到四个循环依赖关系,如下一个屏幕捕捉所示。循环依赖关系是应该避免的不受欢迎的反模式。在循环依赖关系中,一组对象互相连接得非常紧密,这样对任何对象作出的更改都可能会影响所有其它对象。

“代码复审”发现结果,一个折叠的文件夹

  1. 展开结构分析:循环依赖关系文件夹,并注意其中的以下发现结果,如下一个屏幕捕捉所示:
  2. “代码复审”发现结果,一个展开的文件夹

  3. 右键单击列表中的第三个发现结果。快速修订弹出菜单选项因解决方案而异。对于您选择的循环依赖关系,修订是将静态字段从基类移动到另一个类,从而去除循环依赖关系。
  4. 单击快速修订:将静态字段从基类移去
  5. 所选中的发现结果的“快速修订”弹出菜单



应用快速修订

对于您选择的循环依赖关系,快速修订是将静态字段从基类移动到另一个类。您可以选择将字段移动到现有的类或新的类。

要将字段移动到新类:

  1. 在下一个屏幕捕捉中,查看关于您要更正的循环依赖关系(也称为对象缠结)的只读信息:
  2. 单击生成新的 Java 类并输入:
  3. 指定要将代码移动到的类

  4. 单击预览来查看快速修订将更改的代码。
  5. 展开要执行的更改列表(如以下屏幕捕捉所示),查看快速修订在将静态字段移动到新的类时,确切地将对代码作出什么更改。
  6. 要执行的更改

  7. 单击列表中的第四个更改(即以 Font.java 开头的更改),查看代码的并排视图。原始代码在左边,将由快速修订创建的重构后代码在右边。
  8. 所选中更改的原始代码和重构后代码

  9. 单击确定,将快速修订应用于列表中所有选中的更改。
  10. 应用快速修订后,您将看到一个确认选中标记,从而知道问题已经得到解决。
  11. “代码复审”,已解决的发现结果旁边的选中标记

您已经完成“练习 1.4:解决结构问题”。



利用快速修订的能力

代码复审中的一些常见发现结果提供有快速修订。通过应用提供的快速修订,您就有了解决循环依赖关系的自动方法。您可以:



练习 1.4 总结

您已经完成“练习 1.4:解决结构问题”。其中您执行了以下任务:

  1. 运行了代码复审来查找循环依赖关系。
  2. 找出了循环依赖关系何时有提供的快速修订。
  3. 应用了快速修订来解决循环依赖关系:
  4. 收到了快速修订已经应用的确认。

复习摘要中的学习目标,完成教程。



使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.