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

bal*_*dre 2 c# oop design-patterns asp.net-mvc-2

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

例如,我的WebApp处理订阅和电子邮件活动,我想创建一个界面,以便轻松耦合多个API,MailChimp,CampaignMonitor,iContact等...

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

public class CampaignMonitorService : IMailingService
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好...

如何在我的webapp上执行操作时触发接口方法

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

例如,在用户订阅时,我想在该AddSubscriber方法上触发该方法interface

AddSubscriber(string email, string[] args);
Run Code Online (Sandbox Code Playgroud)

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

处理这种情况最佳方法是什么?

Ode*_*ded 6

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

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