練習 1.4:解決結構問題
這個練習假設您已經完成練習 1.1:匯入所需的資源。在練習 1.4 中,請先閱讀使用者實務。然後您要擔負使用者實務中說明的軟體架構設計師角色,
並使用您在練習 1.1 匯入的專案,來完成練習。
使用者實務
為了特別檢查程式碼是否有循環的相依關係存在,架構設計師執行結構分析程式碼複查,
只查看這類的相依關係。程式碼複查確實找到一些的循環相依關係,並且架構設計師注意到其中有些問題已經有快速修正方法。快速修正是用來修正一般發現項目的一種自動化方式。為了將程式碼重新建構為沒有循環問題,
架構設計師針對其中一個循環的相依關係套用快速修正。
在最後的練習中,架構設計師會執行程式碼複查,並修正其中一個發現項目。
練習
在本練習中,您要執行下列作業:
- 執行程式碼複查,尋找循環的相依關係。
- 查看循環的相依關係是否已經有快速修正可用。
- 套用快速修正,解決循環的相依關係:
- 查看要進行之變更的清單。
- 檢視每項變更的現存及重新建構後的程式碼。
- 套用快速修正之後,取得確認。
選取程式碼複查,檢查循環的相依關係
若要選取程式碼複查,檢查循環的相依關係:
- 在「程式碼複查」視圖的工具列上,按一下管理規則圖示
。

- 在選取程式碼複查清單中,按一下結構分析程式碼複查。
- 展開結構分析資料夾,並清除除了循環的相依關係子資料夾以外的所有項目。
- 展開循環的相依關係子資料夾,查看程式碼複查中會套用的規則,如下列畫面擷取所示。然後按一下確定。

選取要複查的程式碼庫
若要選取工作區作為要複查的程式碼庫:
- 在「程式碼複查」視圖的工具列上,按一下複查圖示
(
) > 複查工作區。
執行程式碼複查
當您選取要複查的程式碼庫之後,程式碼複查就會開始執行。您可以檢查位在視圖右下角的進度列,追蹤其執行狀態。
檢視所找到的循環相依關係清單
程式碼複查共找到 4 個循環的相依關係,如下一個畫面擷取所示。循環的相依關係是不理想的違反型樣問題,因此應該盡可能避免。在循環相依關係中,會有一組物件的交互連接太密切,因此只要有任意一個物件做變更,
其他所有物件都會受到影響。

- 展開結構分析:循環相依關係資料夾,並注意其中列出的下列發現項目,如下一個畫面擷取所示:

- 每一個循環的相依關係都會被指派最高的嚴重性層次 (
)。
- 其中兩個循環的相依關係有快速修正 (
) 可用來刪除相依關係。
- 用滑鼠右鍵按一下清單中的第三個發現項目。快速修正蹦現功能表選項會視解決方案而有所不同。對您選取的循環相依關係,其修正程式是要將 static 欄位從基礎類別移到其他類別,因而刪除循環的相依關係。
- 按一下快速修正:從基礎類別移動 static 欄位。

套用快速修正
您選取的循環相依關係之快速修正,是要將 static 欄位從基礎類別移到其他類別。您可以選擇將欄位移到現有的類別中,或是新的類別。
若要將欄位移到新的類別:
- 在下一個畫面擷取中,複查有關要修正之循環相依關係(又稱為糾結)的唯讀資訊:
- 屬於糾結之一部分的類別
- 糾結中的類別之間的相依關係
- 按一下產生新的 Java 類別並輸入:
- src/ 代表來源資料夾名稱
- com.ibm.r2a.rules.rsa.examples 代表套件名稱
- Defaults 代表類別名稱

- 按一下預覽,查看快速修正會變更的程式碼。
- 如下列畫面擷取所示,展開要執行的變更清單,查看當快速修正將 static 欄位移到新類別時,
會對程式碼做什麼樣的變更。

- 按一下清單中,以 Font.java 開頭的第四個變更,查看程式碼的並列視圖。原始程式碼位在左邊,而快速修正將會建立之重新建構後的程式碼位在右邊。

- 按一下確定,套用快速修正至清單中已選取的所有變更。
- 套用快速修正之後,您會看到一個勾號作為確認,讓您知道問題已經解決。

現在您已經完成「練習 1.4:解決結構問題」。
運用快速修正的威力
系統對程式碼複查中的一些常見發現項目,有提供快速修正。套用系統提供的快速修正時,
您可以自動解決循環的相依關係。您可以:
- 識別及評估循環的相依關係。
- 使用自動快速修正,快速刪除相依關係。
- 檢查快速修正會對程式碼進行的變更清單。
- 持續以一致的方式,修正循環相依關係。
完成練習 1.4
現在您已經完成「練習 1.4:解決結構問題」。在這個練習中,您執行了下列作業:
- 執行程式碼複查,尋找循環的相依關係。
- 查看循環的相依關係是否已經有快速修正可用。
- 套用快速修正,解決循環的相依關係:
- 查看會做變更的清單。
- 檢視每項變更的現存及重新建構後的程式碼。
- 套用快速快速修正之後,取得確認。
請複查摘要中的學習目標,完成指導教學。