2

そのため、WCFサービス契約を個別の契約に分割して再利用しました。

私は以前、Function1、Function2、Function3の3つの関数を含むIOneServiceContractを持っていました。

このサービス契約を、IServiceContract1とIServiceContract2の2つの個別のサービス契約に分けました。IServiceContract1にはFunction1が含まれ、IServiceContract2にはFunction2とFunction3が含まれます。これにより、個別のIServiceContract1やIServiceContract2を再利用して、公共サービスの契約を表す新しいサービス契約を作成できます。

これを知っている...そしてうまくいけば、あなたが残りをフォローできないように説明を台無しにしていない...

IService1とIService2の2つのサービスがあります。
IService1は、IServiceContract1とIServiceContract2を実装します。IService1はすべての関数(Function1、Function2、Function3)を実装する必要があるため、これは完璧に機能します。

ただし、IService2はIServiceContract2のすべての機能を実装する必要はなく、Function1のみを実装する必要があります。

IService2がコントラクトを部分的に実装する方法はありますか?私はそれがばかげているように聞こえることを知っています。この状況を処理してIServiceContract2を論理的に分離し、IService2が必要な部分だけを実装する必要があるようにする正しい方法はありますか?

ありがとう

4

1 に答える 1

1

サービス契約を実装する場合は、すべてを実装する必要があります。そのため、SOLID開発の原則の「I」は「インターフェイス分離の原則」と呼ばれます。インターフェイスをできるだけ小さくして、実装者が本当に興味のない一連のメソッドを実装する必要がないようにします。

あなたは基本的にその原則を受け入れているようです-問題は:あなたはあなたの方法を異なる方法で分割することができますか?それとも、それらを3つの別々のサービス契約に分割するのは害がありますか?

于 2010-03-18T21:29:17.767 に答える