Configuration File パターン

状況:
あるComponentがあり、それは外部の環境で設定される情報を必要とし、その情報を記述したファイル(など)がある。

問題:
ファイルの読み書きをComponentに実装すると、Componentが複雑になりすぎるし、設定ファイルのフォーマットや記録方式(ファイルからDBに変えるとか)の変更に弱くなってしまう。

解決策:
設定ファイルを読み込んで、その内容をメモリ上で保持する Configuration File クラスを作成する。ConfigurationFileは、最初にファイルから設定情報をすべて読み込んで保持しておく。Componentは、必要に応じてConfiguration File から情報を取り出して使用する。Component自体は設定情報を保持しないで、必要になるたびにConfigurationFileから取得する。
ConfigurationFileは、設定値を取得するためのインターフェースを持たなくてはならない。これは、Componentに依存するようにしてもよいし(設定項目ごとにGetterがある)、汎用的なインターフェース(名前を指定して取得するする)にしてもよい。
ConfigrationFileクラスは、設定ファイルの再読み込みなどを制御することもできる。
大森でやってたコンフィグレーションコンポーネントはこのパターン。