0

次の質問があります。

パッケージ A (別の dll) には ClassA があります。

Facade (別の別の dll) には、メソッド public IEnumerable GetAll(){} があります。

Web アプリケーションでは Facade.GetAll() を呼び出しますが、IEnumerable を取得するには、Facade とパッケージ A の両方を参照する必要があります。

ファサードのみを参照し、同時に IEnumerable を取得することは可能でしょうか (たとえば、ファサードで ClassA のインターフェイスを構築するなど)?

それ以外の場合、両方の dll を参照すると、(理論上または誤って) ClassA から GetAll() を呼び出すことができます。しかし、最初のアイデアは、ファサードを介してビジネスクラスと通信することでした。そのため、ウェブサイトのようなエンドアプリはビジネスクラスの存在を認識しませんか?

4

1 に答える 1

0

この問題に対する一般的なアプローチは、1. 実装 (ClassA) 2. ファサード (またはプロキシまたは代替品) 3. それを使用するアプリケーションまたはクラスで共有される、インターフェースを含むパッケージを使用することです。

このようにして、間違った実装を使用してしまうことは決してありません。そして、具体的なクラスからより独立しています。

于 2011-07-06T07:00:21.670 に答える