我目前正在实施Observer设计模式,并使用它来处理向会话添加项目,创建错误日志并将消息写入用户,提供有关其操作的反馈(例如,您刚刚注销!)。< / p>
我开始使用一个名为addEvent()的方法,但是当我添加更多Observers时,我发现详细说明每个监听器所需的所有信息所需的参数开始增长。
我现在有3个方法叫做addMessage(),addStorage()和addLog()。这些将数据添加到一个事件数组中,该数组具有与事件类型相关的键(例如日志,消息,存储),但我开始觉得现在主题需要对附加的侦听器了解太多。
我的另一个想法是回到addEvent()并传递一个事件类型(例如USER_LOGOUT)以及相关的数据,每个Observer维护它自己的事件句柄列表(可能在switch语句中),但这感觉很麻烦。此外,我还需要检查是否已将足够的数据与事件类型一起传递。
这样做的正确方法是什么?
如果我能进一步解释这方面的任何部分,请告诉我。我希望你能帮忙看看我正在努力解决的问题。