特殊化レイヤーの設計例
特殊化のユースケース
このトピックでは、ユースケースの例と、推奨される特殊化アプローチについて説明します。
ユースケース:エンタープライズレベルでの製品の定義
3Phase Inc.は、創業25年の大手電機メーカーです。 時代とともに、新製品や交換部品の仕入れは次第に複雑化してきました。 この問題を解決するため、同社は独自のサプライチェーン管理(SCM)部門を設置しました。 現時点で、SCMアプリケーションを地域別に特化する必要はありません。
この要件をサポートする特殊化ソリューションを設計します。
提案および推奨事項
推奨される特殊化アプローチでは、製品をエンタープライズレベルで定義します。 製品セレクターのようなユーティリティもエンタープライズレベルで定義します。 このアプローチにより、SCM部門と営業部門・カスタマーサービス部門は、標準的な製品データの定義とユーティリティを共有できるようになります。
SCMの目標は、各地域内で製品や交換部品の在庫を確保することに特化されています。 SCMの目標は、営業担当者やカスタマーサービス担当者の担当範囲外です。
SCMの目標が特化されていることで、PHA-SCM-APP-[Work/Data/Int]というケース構造を使用して、SCM部門独自のアプリケーションルールを開発することになりました。 今後、特定の地域に特化したルールが必要になった場合は、次のようなさまざまなアプローチを検討することもできます。
- ケースタイプルールの状況設定など、地域名でルールに状況設定する。
- ケースタイプのクラス名に地域の頭文字をダッシュを付けて追加し、パターン継承の特殊化を利用する。
- 地域別の既存アプリケーション上に、新しい実装アプリケーションを構築する。
ユースケース:再利用可能な組み込みアプリケーションの作成
GameMatchは、さまざまな種類のゲームをプレイしながら会員同士を紹介することに特化したソーシャルメディア企業です。
ゲームの設定から実行までのプロセスはどのゲームでも同じですが、 プレイのルールはゲームの種類によって異なります。 プロセス全体は、メンバーが事前に決めたプレイ対象のゲームのコンテキストで進行します。 ゲームの起動からプレイ終了までの各プレイヤーの動作は、ゲームの種類別のデータベーステーブルに記録されます。
この要件をサポートする特殊化ソリューションを設計します。
提案および推奨事項
次の理由から、推奨される特殊化アプローチでは、再利用可能な組み込みアプリケーションレイヤーを作成します。
- どのゲームを選んでも、エンドツーエンドのインタラクションは同じである。
- ゲームによってプレイのルールは異なる。
- ユーザーに、あるインタラクションから別のインタラクションにコンテキストを切り替えるよう要求することは許容される。
- 各インタラクションを個別に永続化することが望ましい。
本番アプリケーションは、再利用可能なレイヤーの特殊化をベースに構築されたゲームの種類ごとに開発します。
このトピックは、下記のモジュールにも含まれています。
- 専門化の設計 v2