设计模式 - 事件和通知

时间:2014-03-13 00:07:07

标签: php events design-patterns notifications

所以我正在寻找一种可以帮助我解决问题的模式。它与事件和通知有关。它是这样的:

在本案例管理系统中,在工作流程的各个点上,将触发事件,这将要求我通知属于该工作流实例的团队成员。示例:

  • 老板请重新分配此案
  • bla获得批准,开始处理此案
  • 我要去度假,通知我的代表,我的所有案件都是他的!

系统中的成员可以通过其帐户资料“选择加入”不同形式的通知,例如电子邮件,短信,信使。一个用户可能有多个他们选择使用的通知类型。

我希望使用的结构是为各种通知管理器提供标准接口

$smsNotificationManager->notify(Event $event, Array $users)
$emailNotificationManager-notify(Event $event, Array $users)
$messangerNotificationManager-notify(Event $event, Array $users)

事件将被传递给事件处理程序,该事件处理程序将 - 作为其任务之一 - 使通知处理程序通知事件发生的成员。通知处理程序负责让每个特定的通知管理器理清如何通知订阅其通知的人员。

我确信我可以利用这种模式。该活动将识别需要通知的人。事件处理程序不应该关心如何通知它们。

通知处理程序应该能够排除可用的通知类型,并弄清楚如何将事件和所有订阅者传递给每个管理器。

我将来也会添加对新通知类型的支持。所以我有点不清楚我是否应该在其他地方封装通知类型的最佳实践,或者在通知处理程序中实现具体的引用,让它按用户排序,在通知处理程序中设置一些案例逻辑,并向每个通知管理器传递用户列表和事件。

是否有一个明显的模式来模拟这个。任何指导最佳实践欢迎!

0 个答案:

没有答案