观察者模式或只是创建事件处理?

时间:2010-10-08 08:57:15

标签: c# design-patterns asp.net-mvc-2 oop

我想在我的网络应用程序中创建一个“模块”布局,这样我就可以轻松添加更多相同类型的模块,例如:

作为示例,我的WebApp处理订阅和电子邮件广告系列,我想创建一个界面,以便轻松耦合多个API,MailChimp,CampaignMonitor,iContact等...

所以我将创建一个IMailingService接口,我在其中设置基本规则,所有模块都将实现它,如

public class CampaignMonitorService : IMailingService

到目前为止一直很好......

对我的webapp上的操作触发界面方法怎么样?

我应该实现观察者设计模式,我应该简单地创建事件处理程序还是其他任何钩子?

例如,在用户订阅时,我想在AddSubscriber

上触发interface方法
AddSubscriber(string email, string[] args);

创建列表,取消订阅等等......

处理此类情况的最佳方法是什么?

1 个答案:

答案 0 :(得分:6)

事件处理程序如何在.NET中正常实现Observer模式。该模式是.NET世界的一等公民,非常类似于Iterator模式的内置(使用foreachyield return)。

如果您确实想要使用没有事件/事件处理程序的模式,则可以使用新的IObserver<T>IObservable<T>(在.NET 4.0中引入)。