2012-04-16 15 views
0

ロギングにアダプタパターンを使用する方法について説明します。抽象ログモジュールは、さまざまなログ実装の設定の詳細を隠す必要がありますか?これについては、私たちが話している間に疑問が生じました。アダプタパターンを実装する際にコンフィグレーションを抽象化する必要がありますか?

ロギングを抽象化するためにアダプタパターンを使用する2つのプロジェクトがあります(そのうちの1つはCommon Infrastructure Library for .NETです)。

両方のプロジェクトで、クライアントが提供しなければならない設定は、実装のロギングによって異なります。たとえば、log4netが使用されている場合、クライアントはLog4Net設定ファイルを提供する必要があります。

これはアダプタパターンの不完全な実装だと思うと間違っていますか?私には、クライアントがアダプテイに関する知識を持っていなければならない場合、クライアントを壊さずに実装をスワップすることはできません...

しかし、わかりません。

ありがとうございました。

答えて

1

によって異なります。

一般的に私は同意します。クライアントが何らかの抽象化を使用しているにもかかわらず、クライアントが特定のサービス実装に固有の何かを必要としない場合、抽象化は壊れてしまいます。

あなたのケースでは、ログライブラリの2つの異なるクライアントが混在していると思います。

クライアントは、その状態に関する情報を世界に発信しようとするアプリケーションです。それは決して構成に関係するものではありません。

もう1人のクライアントは、あなたのアプリケーションの環境を設定する人または誰かです。このクライアントは構成のみを考慮する必要があります。

アダプタは、最初のクライアントのみに適用され、このクライアントは完了です。

+0

この観点からは、実装ごとに異なる設定を持つことは合理的です。限り、構成がファイルを介して行われている(とコードステートメントではなく)もちろん。ご回答有難うございます。 – SRO

0

アダプターは、純粋な抽象化のために、どのアダプター固有の実装の詳細も隠すべきです。理想的には、基本的な構成オプションを使用して「構成」メソッドを指定する必要があります。このオプションは、可能であれば特定のものに変換する必要があります。

しかし、これは多くの場合、極端である可能性があります。

関連する問題