この演習では、itso.ad.business パッケージのフレームワーク・レイヤーをモデル化します。フレームワーク・コンポーネント・レイヤーは、永続的なアプリケーション・データとアプリケーションの実装の両方からクライアント・インターフェースを分離します。フレームワーク・コンポーネント・レイヤーには、委譲ファクトリー・クラスと例外に加えて、転送オブジェクトと委譲インターフェースが含まれています。
フレームワーク・コンポーネント・レイヤーには、次の表の設計サブパッケージが含まれています。
パッケージ | 説明 |
---|---|
exception | このサブパッケージには、PiggyBank オンライン・バンキング・システム用のエラー・リカバリーを提供する ServiceException 例外クラスおよび DataAccessException 例外クラスが含まれています。 |
factory | このサブパッケージには、ビジネス委譲の動的作成に使用される BusinessDelegateFactory クラスが含まれています。 |
interfaces.delegates | このサブパッケージには、ビジネス委譲用のインターフェースが含まれています。 |
interfaces.to | このサブパッケージには、転送オブジェクト用のインターフェースが含まれています。 |
転送オブジェクトは、リモート・プロシージャー・コールの戻り値の型として使用されます。PiggyBank 転送オブジェクトは、PiggyBank 設計のレイヤー間で、顧客情報およびアカウント情報を転送します。この演習では、転送オブジェクト・インターフェースをモデル化します。
転送オブジェクト・インターフェースのモデル化が完了しました。作成した図は次のようになります。
ビジネス委譲インターフェース定義は、ビジネス委譲実装インスタンスの生成に使用されるビジネス委譲メソッドおよびファクトリー・コンポーネントを表します。IPiggyBankBusinessDelegate インターフェースは、PiggyBank ビジネス・ロジックへのインターフェースを定義します。 AbstractBusinessDelegateFactory クラスは、IPiggyBankBusinessDelegate インスタンスをインスタンス化します。
委譲インターフェースのモデル化が完了しました。getAccountsByCustomer および getCustomerById 操作は、直前の演習で作成した転送オブジェクト・インターフェースを返すことに注意してください。 作成した図は、次のようになります。
BusinessDelegateFactory クラスは、委譲ファクトリー・インスタンスを動的に作成するために使用されます。
itso.ad.business レイヤー・ファクトリー・クラスのモデル化が完了しました。作成した図は次のようになります。
フレームワーク・コンポーネント・レイヤーには 2 つの例外の実装、つまり、ビジネス・レイヤーでエラーが発生するとスローされる DataAccessException と、サービスのロスが原因で発生する ServiceException が含まれています。
itso.ad.business フレームワーク・コンポーネント・レイヤーのモデル化が完了しました。このフレームワーク・レイヤーは、PiggyBank クライアント・インターフェースを PiggyBank 実装から隠す分離レイヤーです。ここで、ファクトリー・パッケージを図にドラッグすることによって、itso.ad.business 設計要素図を完成させることができます。delegate.ejb パッケージをファクトリー・パッケージに使用関係で接続します。 ファクトリー・パッケージをフレームワーク・パッケージに関連で接続します。 作成した図は次のようになります。
継続する場合は、『演習 3.6: EJB コンポーネント・サブパッケージのモデル化』に進みます。