2016-04-03 2 views
3

私はSLF4Jの詳細を理解しようとしています。 slf4jがロギングファサードとしてどのように考えられているかについてはまだ明確ではありませんか?slf4jはどのようにファサードですか?

ファサードの意図は、典型的に -

は、サブシステム内のインタフェースのセットに統合されたインターフェースを提供します。ファサードは、サブシステムを使いやすくするための高水準インターフェースを定義しています。 SLF4Jの場合は

それは一般的なLoggerインタフェースを提供しますが、その他log4j, logbackなどの各結合プロジェクトは、その具体的な実装を提供する必要があります。

私はadapter patternがどのように適合しているのか理解していますが、まだどのように理解できませんかFacade Patternが使用されています。それは、言語レベルのファサードではありません

答えて

2

、それはアプリケーションレベルでのファサードです。あなたのアプリケーション(あるいはもっと重要なのはライブラリ!)を書くときには、何らかの形でステートメントを記録する必要があります。あなたが特定のログの実装(log4jの、logback)にあなたのコードを結ぶ場合は、2回のものを設定する必要がありますし、おそらく共有することはできませんので、他のロギング実装を使用するコードの別の部分に統合することは困難になります同じ出力デバイス。

これは、ライブラリの作者のために特に重要です。だから、SLF4Jは、場に出た:あなたはSLF4J、その後、図書館の利用ユーザーが適切な結合を経由して、実際のログマシナリーとバインディング構成を提供できるようにログインします。

1

SLF4Jはない、厳密な意味でのファサードです。それだけで比較的容易に必要であれば、ユーザーが別のAPIに切り替えることができるように、ほとんどのロギングフレームワークで共有する最も一般的なログメソッドのためのAPIを提供します。

関連する問題