我正在研究SplObserver模式作爲解決日誌記錄問題的一種方式(即,如何處理活動日誌記錄而不直接在您感興趣的類中實現它,並因此將代碼放入它們中與他們的責任範圍直接相關)。SplObserver通知問題
問題是,作爲實施,SplObserver似乎沒有給你任何類型的通知類發送任何細節的觀察類,而不是「我正在觸發通知」的標準化機制。
我很好奇其他人如何解決這個問題,他們擴展SplObserver和SplSubject接口還是自己推出?
如果有可能實現觀察者模式,觀察者可以指定它只希望得到通知,我還認爲在更一般的術語中(如可以用觀察者實現的其他功能,而不是必須記錄)某些事件,而不是事件可能產生的每個事件。例如,我可能需要一個將所有活動記錄到日誌文件的日誌記錄觀察程序,但也會出現一個錯誤報告觀察程序,當發生錯誤時會向管理員發送電子郵件,但只有在發生錯誤時纔會發送。您可以編寫錯誤記錄器來忽略未由錯誤觸發的通知(假定可以修改此模式以便發送特定種類的通知),但我懷疑這樣做效率會低於理想狀態。我懷疑允許觀察者只訂閱特定的主題事件會更好,但是這種方法可以用SplObserver實現嗎?
自從問了一段時間。我將其標記爲最愛,因爲我對可能的答案感興趣。你有沒有達到自己的解決方案? – 2012-01-26 00:52:21
不是迄今爲止。它現在在後面的燃燒器上。 – GordonM 2012-01-26 07:08:32