Business Delegate と Service Locator の違いは何ですか。ルックアップと作成メカニズムのカプセル化を両方とも担当します。Business Delegate が Service Locator を使用してルックアップと作成メカニズムを非表示にする場合、Business Delegate は何を意味するのか、Service Locator は Business Delegate を置き換えることはできません.
2 に答える
すでにこれをチェックアウトしたかどうかはわかりませんが、良いスタートです。
ビジネス デリゲートを使用して、ビジネス サービスへのアクセスをカプセル化します。ビジネス デリゲートは、ルックアップやアクセス メカニズムなど、ビジネス サービスの実装の詳細を隠します。
Service Locator は、一般的なレジストリに基づいて、特定のサービスの場所、制限、および必須フィールドを検索および/または取得するために必要なロジックをカプセル化します。ビジネス デリゲートは、関連するサービスのグループをカプセル化し、それらをまとまった方法で公開して、サービスの顧客が特定の機能に関連するすべてのサービスを検索してアクセスする必要がないようにします。
さらに、顧客が Service Locator とそれが消費するサービスを実際に知る必要がなくなり、特定のビジネス デリゲートに任せることができます。クライアントは、関連するタスクのグループまたはさまざまなサービスに依存するタスクを実行するために、その委任のみを必要とします。
例
ビジネス デリゲートは、サービス ロケータのグループを実際にはカプセル化しません。Service Locator に抽象化レイヤーを提供して、まとまりのあるサービスのサブセットを提供します。通常、Service Locator のインスタンスは 1 つだけです。複数のインスタンスには追加のマッピングが必要です。どの Service Locator が Service X を提供するかを知る必要があります。Service Locator Locatorが必要であるかのように考えてください。
例は物事を明確にするのに役立つはずです。
ユーザー アカウントの管理について考えてみましょう。UserBusinessDelegate
登録サービスをルックアップしてユーザーを登録し、認証サービスをルックアップしてログインを許可します。クライアントは、これらのサービスにアクセスするためにビジネス デリゲートを 1 つだけ必要とし、両方のサービスの ID を知る必要はありません。
これらのサービス ID はカプセル化されているUserBusinessDelegate
ため、ID を宣言する必要がなく、あらゆる場所でサービス ロケーターを使用できます。これについて考えてみてください。1 つのサービス ID が変更されるとどうなるでしょうか?
このような場合、担当のビジネスデリゲートが更新され、クライアントへの直接的な影響を回避します。