IPaymentService
を使用してクレジット カードの支払いを処理するアプリケーションがあります。適切な実装 (CreditCardPaymentComponent
またはインターフェイスCheckPaymentComponent
を実装するその他のもの) は、 ASP.NET プロバイダー モデルを使用しIPaymentService
てアプリケーションに挿入されます。PaymentProvider
また、これらのコンポーネントは、 にアクセスできないさまざまなアプリケーションで再利用できるようにする必要がありますPaymentProvider
。
IPaymentService
問題は、インターフェースをどこに置くかです。サービスを使用する必要があるアプリケーションが複数あるため、アプリケーション内に配置することはできません。このインターフェイスを実装するサービスが複数あるため、サービス内に配置することはできません。インターフェイスを独自のプロジェクトに配置するのは好きではありません。参照をどこにでも追加する必要があるからです。別の解決策はありますか?
編集:明確にするために、プロバイダー モデルを使用するポイントは、他の開発者をサポートできるようにすることです。たとえば、CustomPaymentComponent
どの実装を実装IPaymentService
し、アプリとシームレスに動作するかを書くことができます。私は@Frazellの答えに傾いていますがIPaymentService
、sと同じアセンブリを配置することにマイナス面があるかどうか疑問に思っていPaymentComponent
ますか? このシステムの を開発する必要があるとしたらCustomPaymentComponent
、何が最も理にかなっていますか?