正确使用命令模式?

时间:2013-12-17 04:51:42

标签: design-patterns

我有以下情况。

我希望能够在我的应用程序中发生不良事件时发送通知。有两种类型的通知应该可用。 1.)电子邮件通知 2.)事件日志通知

不幸的是,这两种类型的通知都需要一些“Uncommon”信息才能有用(电子邮件需要电子邮件地址,SMTP地址......等等,而Eventlogs永远不需要这些信息。)

我正在考虑使用CommandPattern来封装和隐藏发送通知的Application Service中的这些详细信息。因此,通知服务只有一个命令列表。当需要发送通知时,它只是遍历它的命令列表并执行它们。这是一个可行的解决方案,以便将我的应用程序服务与Notification实现的特定实现分离吗?

通知服务示例

public class NotificationService
{
     IList<ICommand> _notificationCommands;
     void SendNotifications()
     {
         foreach ( vat notification in _notificationCommands)
                 notification.Execute();
     }
}

这是正确的解决方案/使用命令模式吗?

1 个答案:

答案 0 :(得分:1)

命令模式可能有效。但是,我会考虑一种EventAggregator方法,您可以在其中发出类型化事件。一个更合适的解决方案,恕我直言。

http://codebetter.com/jeremymiller/2007/06/29/build-your-own-cab-11-event-aggregator/ http://martinfowler.com/eaaDev/EventAggregator.html