Façade Pattern

2017/10/13 WPF::Prism
ファサードパターン

これもGoF本にある古典的なパターン。
Façadeはフランス語で建物の正面。
複雑なインターフェイスを簡単に使えるように単純化したり、似たようなインターフェイスが複数ある場合は、間にファサードインターフェイス置く事で利用する側がインターフェイスが切り替わっても影響を受けないようにする(下記ILoggerFacadeはこっちのパターンですね)。

Prismにおける利用

IContainerFacade.cs クラスと ILoggerFacade.cs
直ぐに見つかったILoggerFacade.cs
public interface ILoggerFacade
{
     void Log(string message, Category category, Priority priority);
}
facade010.png

メッセージを受け取ってもそのまま捨てるEmptyLogger、DebugLoggerはDebug.Listenersのコレクションに追加、TextLoggerはコンストラクタでTextWriterを受け取りそこに書き込む、TraceLoggerはTraceクラスに書き込む。
Bootstrapper.csではTextLoggerが指定されている。
好みの方法でログを保存したければILoggerFacadeを実装しBootstrapper.csのCreateLoggerを上書きする。
OK キャンセル 確認 その他