观察者设计模式 - 多种事件类型

时间:2011-01-14 15:51:09

标签: php observer-pattern

我目前正在实施Observer设计模式,并使用它来处理向会话添加项目,创建错误日志并将消息写入用户,提供有关其操作的反馈(例如,您刚刚注销!)。< / p>

我开始使用一个名为addEvent()的方法,但是当我添加更多Observers时,我发现详细说明每个监听器所需的所有信息所需的参数开始增长。

我现在有3个方法叫做addMessage(),addStorage()和addLog()。这些将数据添加到一个事件数组中,该数组具有与事件类型相关的键(例如日志,消息,存储),但我开始觉得现在主题需要对附加的侦听器了解太多。

我的另一个想法是回到addEvent()并传递一个事件类型(例如USER_LOGOUT)以及相关的数据,每个Observer维护它自己的事件句柄列表(可能在switch语句中),但这感觉很麻烦。此外,我还需要检查是否已将足够的数据与事件类型一起传递。

这样做的正确方法是什么?

如果我能进一步解释这方面的任何部分,请告诉我。我希望你能帮忙看看我正在努力解决的问题。

0 个答案:

没有答案