†PEAR::Logにはデザインパターンのうち、シングルトンパターン、ファクトリーメソッドパターンをサポートしているが、もう一つサポートしているデザインパターンがある。それはオブザーバパターンオブザーバパターンとは?http://www-06.ibm.com/jp/developerworks/opensource/060901/j_os-php-designptrns.shtml#cコンポーネント間の密結合を避ける別の手段として、オブザーバー・パターンがあります。監視対象オブジェクトはその変更時に登録オブザーバーにメッセージを送信します。監視対象オブジェクトにとっては関係なく、重要でもありません。オブジェクトは必ずしも理由を理解することなく、その結果が、オブジェクト同士が対話する方法になります。他のクラスに影響が出てしまうことがあるため、クラス同士は可能な限り密な結合がない方がよい。このオブザーバパターンを使うと、ログのインプット部分とアウトプット部分を完全に分離させることが出来る。PEAR::Authも1.5.0からLog_observerクラスを使った実装をサポートしている。singleton('null');$logObj->notice("もょもとはみをまもっている");$logObj->crit("痛恨の一撃");$logObj->emerg("返事がないただの屍のようだ");?>一見するとわかりにくいが。このプログラムはログの優先度に応じて出力するファイルを変更している。利用する際に選択しなければならないのだが、この方法ならメッセージを投稿するだけでオブザーバクラスがその後の処理を引き受けてくれる。投稿する際、オブザーバクラスの中身がどうなっていようと全く影響がない。プライオリティがワーニング以上の場合はメールを送るとか、デバッグログはデバッグフラグが付いているときだけ出力するなど、カスタマイズ法はいくらでも考えられるが、その際、メッセージを投稿するところは全く気にしなくても良い。Project証券会社ランキング。