Façade Pattern
2017/10/13
これもGoF本にある古典的なパターン。
Façadeはフランス語で建物の正面。
複雑なインターフェイスを簡単に使えるように単純化したり、似たようなインターフェイスが複数ある場合は、間にファサードインターフェイス置く事で利用する側がインターフェイスが切り替わっても影響を受けないようにする(下記ILoggerFacadeはこっちのパターンですね)。
Prismにおける利用
IContainerFacade.cs クラスと ILoggerFacade.cs直ぐに見つかったILoggerFacade.cs
public interface ILoggerFacade { void Log(string message, Category category, Priority priority); }
メッセージを受け取ってもそのまま捨てるEmptyLogger、DebugLoggerはDebug.Listenersのコレクションに追加、TextLoggerはコンストラクタでTextWriterを受け取りそこに書き込む、TraceLoggerはTraceクラスに書き込む。
Bootstrapper.csではTextLoggerが指定されている。
好みの方法でログを保存したければILoggerFacadeを実装しBootstrapper.csのCreateLoggerを上書きする。