デザインパターンの命名法と説明: プロバイダー、サービス、ブローカー 質問する

デザインパターンの命名法と説明: プロバイダー、サービス、ブローカー 質問する

プロバイダー、サービス、ブローカーの概念的な違いを誰か定義してもらえますか?

私は定期的に MVC アプリを作成し、ビジネス ロジックの多くを他のクラスにオフロードします。特別なことは何もせず、パラメーターを渡して POCO インスタンスを受け取るだけです。

コントローラーの重い処理を実行するクラスに付ける正しいラベルは何ですか?

ベストアンサー1

プロバイダーとは、戦略パターン

通常、プロバイダーの使用について言及する場合、多くの実装が存在する可能性のある抽象的な契約について話しています。

//As an abstract base class
public void SetupRoles(RoleProvider provider){}

//As an interface
public void SetupRoles(IRoleProvider provider){}

//As a delegate
public void SetupRoles(Action<String> addRole){}

サービスは通常、メソッドのみを持つステートレス オブジェクトを示すために使用されます。サービスは戦略として使用できますが、必ずしもそうする必要はありません。

//Plain old service... doesn't even need the web
// CRAZY TALK MAN!!!
public static class RoleService
{
    public static void SetupRoles(){};
    public static String[] GetRoles(){};
}

ブローカ実際には、仲介を行うだけです。サービスとオブジェクト間でメッセージを移動し、サービス間の相互作用を調整してそれらを分離するように設計されています。

public class Broker
{
    public void SendImportantMessage(Message msg)
    {
        //Do some important processing here
        // Maybe some validation
        NotifySomeOtherServiceOrClassOrMaybeBobFromAccounting(msg);
    }
}

おすすめ記事