練習 3.5:建立組織架構元件層的模型

在這個練習中,您將建立 itso.ad.business 套件的組織架構層模型。組織架構元件層可將用戶端介面和 持續性應用程式資料以及應用程式的實作同時隔開。組織架構元件層包含轉送物件 (transfer object)、委派介面 (delegate interfaces),以及委派 Factory 類別 (delegate factory classes) 與異常狀況 (exceptions)。

組織架構元件層包含下表中的設計子套件:

套件 說明
Exception 這個子套件包含 ServiceException 和 DataAccessException Exception 類別, 可為 PiggyBank 線上銀行系統提供錯誤回復。
Factory 這個子套件包含 BusinessDelegateFactory 類別, 這個類別是用來以動態方式建立商業委派。
interfaces.delegates 這個子套件包含商業委派的介面。
interfaces.to 這個子套件包含轉送物件的介面。

建立轉送物件介面的模型

轉送物件是用來作為遠端程序呼叫的傳回類型。PiggyBank 轉送物件可在 PiggyBank 設計的不同層之間傳輸客戶與帳戶資訊。這個練習將建立轉送物件介面的模型。

建立 ICustomerTO 介面的模型:
  1. 模型瀏覽器視圖中, 展開企業 IT 設計模型, 然後展開 PiggyBank Implementation Designs
  2. itso.ad.business 子套件中, 用滑鼠右鍵按一下 framework 套件;然後按一下新增 UML > 套件
  3. 將新套件命名為 interfaces.to
  4. 模型瀏覽器視圖中,按兩下主要圖型,然後新增 interfaces.to - Transfer Object Interfaces 這個標題。
  5. 在「選用區」中,按兩下介面,然後將介面命名為 ICustomerTO
  6. 在圖型編輯器中,用滑鼠右鍵按一下 ICustomerTO 類別; 然後按一下新增 UML > 作業
  7. 將作業命名為 getId
  8. 在「內容」視圖的一般頁面中, 按一下設定傳回類型
  9. 選取元素視窗中,按一下 String
  10. 在圖型編輯器中,用滑鼠右鍵按一下 ICustomerTO 類別; 然後按一下新增 UML > 作業
  11. 將作業命名為 getName
  12. 在「內容」視圖的一般頁面中, 按一下設定傳回類型
  13. 選取元素視窗中,按一下 String

建立 IAccountTO 介面的模型:
  1. 在「選用區」中,按兩下介面,然後將介面命名為 IAccountTO
  2. 在圖型編輯器中,用滑鼠右鍵按一下 IAccountTO 類別; 然後按一下新增 UML > 作業
  3. 將作業命名為 getBalance
  4. 在「內容」視圖的一般頁面中, 按一下設定傳回類型
  5. 選取元素視窗中,按一下 Integer
  6. 在圖型編輯器中,用滑鼠右鍵按一下 IAccountTO 類別; 然後按一下新增 UML > 作業
  7. 將作業命名為 getNumber
  8. 在「內容」視圖的一般頁面中, 按一下設定傳回類型
  9. 選取元素視窗中,按一下 String

您現在已經建立轉送物件介面的模型。您的圖型看起來應該與下圖類似:

轉送物件介面圖型。

建立委派介面的模型

商業委派介面定義說明用來產生商業委派實作實例的 商業委派方法和 Factory 元件。IPiggyBankBusinessDelegate 介面會定義一個對 PiggyBank 商業邏輯的介面。AbstractBusinessDelegateFactory 類別會將 IPiggyBankBusinessDelegate 實例加以實例化。

建立 IPiggyBankBusinessDelegate 介面的模型:
  1. 模型瀏覽器視圖中, 展開企業 IT 設計模型, 然後展開 PiggyBank Implementation Designs
  2. itso.ad.business 子套件中, 用滑鼠右鍵按一下 framework 套件; 然後按一下新增 UML > 套件
  3. 將新套件命名為 interfaces.delegates
  4. 模型瀏覽器視圖中,按兩下主要圖型,然後新增 interfaces.delegates - Delegate Interfaces 這個標題。
  5. 在「選用區」中,按兩下介面,然後將介面命名為 IPiggyBankBusinessDelegate

建立 cashCheck 作業的模型:
  1. 在圖型編輯器中,用滑鼠右鍵按一下 IPiggyBankBusinessDelegate 類別; 然後按一下新增 UML > 作業
  2. 將作業命名為 cashCheck ( accountToCredit, checkAmount, checkReference )
  3. 在「內容」視圖的參數頁面中, 按一下 accountToCredit 參數的類型欄位, 然後將參數類型變更為 String
  4. 按一下 checkAmount 參數的類型欄位, 然後將參數類型變更為 Integer
  5. 按一下 checkReference 參數的類型欄位, 然後將參數類型變更為 String

建立 getAccountByCustomer 作業的模型:
  1. 在圖型編輯器中,用滑鼠右鍵按一下 IPiggyBankBusinessDelegate 類別; 然後按一下新增 UML > 作業
  2. 將作業命名為 getAccountByCustomer ( customer )
  3. 在「內容」視圖的進階頁面中, 在對應關係旁,按一下 1..-1 旁邊的向下箭頭,然後按一下 1..*
  4. 一般頁面中,選取排序勾選框, 清除唯一的勾選框,然後按一下設定傳回類型
  5. 選取元素視窗中,展開 itso.ad.business, 展開 framework,然後在 interfaces.to 套件中,按一下 IAccountTO

建立 getBalance 作業的模型:
  1. 在圖型編輯器中,用滑鼠右鍵按一下 IPiggyBankBusinessDelegate 類別; 然後按一下新增 UML > 作業
  2. 將作業命名為 getBalance ( accountNumber, customer )
  3. 在「內容」視圖的參數頁面中, 按一下 accountNumber 參數的類型欄位, 然後將參數類型變更為 String
  4. 按一下 customer 參數的類型欄位, 然後將參數類型變更為 ICustomerTO
  5. 在「內容」視圖的一般頁面中, 按一下設定傳回類型
  6. 選取元素視窗中,按一下 Integer

建立 getCustomerById 作業的模型:
  1. 在圖型編輯器中,用滑鼠右鍵按一下 IPiggyBankBusinessDelegate 類別; 然後按一下新增 UML > 作業
  2. 將作業命名為 getCustomerById ( customerId )
  3. 在「內容」視圖的參數頁面中, 按一下 customerId 參數的類型欄位, 然後將參數類型變更為 String
  4. 在「內容」視圖的一般頁面中, 按一下設定傳回類型
  5. 選取元素視窗中,展開 itso.ad.business, 展開 framework,然後在 interfaces.to 套件中,按一下 ICustomerTO

建立 transfer 作業的模型:
  1. 在圖型編輯器中,用滑鼠右鍵按一下 IPiggyBankBusinessDelegate 類別; 然後按一下新增 UML > 作業
  2. 將作業命名為 transfer ( amountToTransfer, creditAccount, customer, debitAccount )
  3. 在「內容」視圖的參數頁面中, 按一下 accountToTransfer 參數的類型欄位, 然後將參數類型變更為 Integer
  4. 按一下 creditAccount 參數的類型欄位, 然後將參數類型變更為 String
  5. 按一下 customer 參數的類型欄位, 然後將參數類型變更為 ICustomerTO
  6. 按一下 debitAccount 參數的類型欄位, 然後將參數類型變更為 String
  7. 在「內容」視圖的一般頁面中, 按一下設定傳回類型
  8. 選取元素視窗中,按一下 Boolean

建立 AbstractBusinessDelegateFactory 介面的模型:
  1. 在「選用區」中,按兩下介面,然後將介面命名為 AbstractBusinessDelegateFactory
  2. 在圖型編輯器中,用滑鼠右鍵按一下 AbstractBusinessDelegateFactory 類別; 然後按一下新增 UML > 作業
  3. 將作業命名為 createPiggyBankBusinessDelegate
  4. 在「內容」視圖的一般頁面中, 按一下設定傳回類型
  5. 選取元素視窗中,展開 itso.ad.business, 展開 framework,然後在 interfaces.delegates 套件中, 按一下 IPiggyBankBusinessDelegate,然後按一下確定

您現在已經建立委派介面的模型。請注意, getAccountsByCustomer 和 getCustomerById 作業會傳回您在之前的練習中所建立的轉送物件介面。您的圖型看起來應該與下圖類似:

商業委派介面圖型。

建立商業委派 Factory 的模型

BusinessDelegateFactory 類別是用來以動態方式建立委派 Factory 實例。

建立 BusinessDelegateFactoryClass 介面的模型:
  1. 模型瀏覽器視圖中, 展開企業 IT 設計模型, 然後展開 PiggyBank Implementation Designs
  2. itso.ad.business 子套件中, 用滑鼠右鍵按一下 framework 套件; 然後按一下新增 UML > 套件
  3. 將新的套件命名為 factory
  4. 模型瀏覽器中,按兩下主要圖型,然後新增 factory - Business Delegate Factory abstract implementation 這個標題。
  5. 在「選用區」中,按兩下類別,然後將類別命名為 BusinessDelegateFactory
  6. 在「內容」視圖的一般頁面中, 選取 Abstract 勾選框。

建立 delegateFactory 屬性的模型:
  1. 在圖型編輯器中,用滑鼠右鍵按一下 BusinessDelegateFactory 類別; 然後按一下新增 UML > 屬性
  2. 將屬性命名為 delegateFactory
  3. 在「內容」視圖的一般頁面中, 按一下選取類型
  4. 選取元素視窗中,展開 itso.ad.business, 展開 framework,然後在 interfaces.delegates 套件中, 按一下 AbstractBusinessDelegateFactory
  5. 在「內容」視圖的一般頁面中, 按一下 Static

建立 getInstance 作業的模型:
  1. 在圖型編輯器中,用滑鼠右鍵按一下 BusinessDelegateFactory 類別; 然後按一下新增 UML > 作業
  2. 將作業命名為 getInstance
  3. 選取元素視窗中,展開 itso.ad.business, 展開 framework,然後在 interfaces.delegates 套件中, 按一下 AbstractBusinessDelegateFactory
  4. 在「內容」視圖的「一般」頁面中,按一下 Static

建立 init 作業的模型:
  1. 在圖型編輯器中,用滑鼠右鍵按一下 BusinessDelegateFactory 類別; 然後按一下新增 UML > 作業
  2. 將作業命名為 init ( factoryClassName )
  3. 在「內容」視圖的參數頁面中, 按一下 factoryClassName 參數的類型欄位, 然後將參數類型變更為 String
  4. 在「內容」視圖的一般頁面中, 按一下 Static
  5. 模型瀏覽器視圖的 interfaces.delegate 子套件中, 按一下 AbstractBusinessDelegateFactory 介面, 然後將它拖曳到圖型中。
  6. 在「選用區」中,按一下實作
  7. 在圖型編輯器中,按一下 BusinessDelegateFactory 類別, 然後將它拖曳到 AbstractBusinessDelegateFactory 類別。

您已經建立 itso.ad.business 層 Factory 類別的模型。您的圖型看起來應該與下圖類似:

商業委派 Factory 抽象實作。

建立 itso.ad.business 組織架構異常狀況的模型

組織架構元件層包含兩個異常狀況的實作:其中 DataAccessException 是在商業層發生錯誤時擲出, 而 ServiceException 是在遺失服務時發生。

建立 DataAccessException 和 ServiceException 類別的模型:
  1. 模型瀏覽器視圖中, 展開企業 IT 設計模型, 然後展開 PiggyBank Implementation Designs
  2. itso.ad.business 子套件中, 用滑鼠右鍵按一下 framework 套件; 然後按一下新增 UML > 套件
  3. 將新的套件命名為 exception
  4. 模型瀏覽器視圖中,按兩下主要圖型,然後新增 exception 這個標題。
  5. 在「選用區」中,按兩下類別,然後將類別命名為 DataAccessException
  6. 在「選用區」中,按兩下類別,然後將類別命名為 ServiceException

您已經建立 itso.ad.business 組織架構元件層的模型。組織架構層是一個隔離層, 可隱藏 PiggyBank 用戶端介面,使 PiggyBank 實作無法看到。您現在可以將 Factory 套件拖曳到圖型中, 來完成 itso.ad.business design elements 圖型。將 delegate.ejb 套件連接到具備用法關係的 Factory 套件。將 Factory 套件連接到具備關聯關係的 framework 套件。您的圖型看起來應該與下圖類似:

itso.ad.business design elements 套件圖型。

如果要繼續, 請至練習 3.6:建立 EJB 元件子套件的模型

使用條款 | 意見
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.