C# 观察者模式还是只创建事件处理?
我想在我的web应用程序中创建一个“模块””布局,这样我就可以轻松地添加更多相同类型的模块,例如: 例如,我的WebApp处理订阅和电子邮件活动,我想创建一个界面,以便轻松耦合多个API、MailChimp、活动监视器、iContact等 因此,我将创建一个C# 观察者模式还是只创建事件处理?,c#,design-patterns,asp.net-mvc-2,oop,C#,Design Patterns,Asp.net Mvc 2,Oop,我想在我的web应用程序中创建一个“模块””布局,这样我就可以轻松地添加更多相同类型的模块,例如: 例如,我的WebApp处理订阅和电子邮件活动,我想创建一个界面,以便轻松耦合多个API、MailChimp、活动监视器、iContact等 因此,我将创建一个IMailingService界面,在这里我设置基本规则,所有模块都将像这样实现它 public class CampaignMonitorService : IMailingService 到目前为止还不错 在我的webapp上执行操作时
IMailingService
界面,在这里我设置基本规则,所有模块都将像这样实现它
public class CampaignMonitorService : IMailingService
到目前为止还不错
在我的webapp上执行操作时,触发接口方法如何
我应该实现观察者设计模式,还是简单地创建事件处理程序,或者任何其他挂钩
例如,在用户订阅时,我想在界面上启动AddSubscriber
方法
AddSubscriber(string email, string[] args);
创建列表、取消订阅等
处理此类场景的最佳方法是什么?事件处理程序通常是如何在.NET中实现观察者模式的。该模式是.NET世界的一流公民,非常类似于迭代器模式的内置方式(使用foreach
和yield-return
)
如果您确实希望使用不带事件/事件处理程序的模式,则可以使用新的和(在.NET 4.0中引入)。我相信这些是在3.5中添加的+1无论如何。@Zor-如果您查看文档,您会发现3.5中没有关于这些的条目IObservable
仅在.NET Framework 4中可用,但是感谢您的提醒,我将使用事件处理来实现这一点。@balexandre-是的,正如我在回答中所指出的,它在.NET 4.0中是新的。我的目的是: