2009-04-30 15 views
0

ビジネス・ルールのみを含むアセンブリ(アセンブリA)と、ファイル・システム、DB、Webサービスなどの外部依存関係のインタフェースとして機能するアセンブリの2つのアセンブリがある場合、 (アセンブリB)、参照Bまたは参照BはAを参照する必要がありますか?例について外部の依存関係を持つすべての内部アセンブリとアセンブリ

:私はSourceCodeInterpreterクラス(アセンブリA)を有する場合

、それはデータを読み込む(アセンブリBに)SourceCodeFileReaderをインスタンス化する必要があり、またはSourceCodeFileReaderソースを読んだ後SourceCodeInterpreterクラスをインスタンス化しますファイルを作成し、インタプリタを起動しますか?

答えて

1

すべてのことがどのように使用されるかによって異なります。アセンブリが別のアセンブリで定義された型を使用する場合、そのアセンブリへの参照が必要です。私は、アセンブリの間に依存関係を追加することを避けようとしています。

例では、2つのアセンブリを別々にしておきます。これらのアセンブリの両方が、アプリケーションによって使用されている可能性が最も高いです。アプリケーションは両方を参照することができ、独立したものにすることができます。このアプリケーションでは、SourceCodeFileReaderを使用してコードを読み取り、SourceCodeInterpreterに渡して解釈します。

しかし、これに1つのタイプを使用する必要がある場合は、「最上位レベル」アセンブリを「下位レベルの詳細」への参照を含むアセンブリとして配置します。この場合、おそらく読者が参照者を参照することを意味するでしょう - 読者は低レベルであり、単独では役に立たないからです。

+0

私はこの1つを好きです。私は主なアプリをできるだけ単純で単純なものにしておくために、1つのクラスで1つのメソッドを呼び出す必要がありましたが、2つのクラスやアセンブリを使用することはそれほど多くありませんでした。このように心配する方がはるかに優れています。ありがとう! –

関連する問題