我想在我的网络应用程序中创建一个“模块”布局,这样我就可以轻松添加更多相同类型的模块,例如:
作为示例,我的WebApp处理订阅和电子邮件广告系列,我想创建一个界面,以便轻松耦合多个API,MailChimp,CampaignMonitor,iContact等...
所以我将创建一个IMailingService
接口,我在其中设置基本规则,所有模块都将实现它,如
public class CampaignMonitorService : IMailingService
到目前为止一直很好......
对我的webapp上的操作触发界面方法怎么样?
我应该实现观察者设计模式,我应该简单地创建事件处理程序还是其他任何钩子?
例如,在用户订阅时,我想在AddSubscriber
interface
方法
AddSubscriber(string email, string[] args);
创建列表,取消订阅等等......
处理此类情况的最佳方法是什么?
答案 0 :(得分:6)
事件处理程序是如何在.NET中正常实现Observer模式。该模式是.NET世界的一等公民,非常类似于Iterator模式的内置(使用foreach
和yield return
)。
如果您确实想要使用没有事件/事件处理程序的模式,则可以使用新的IObserver<T>
和IObservable<T>
(在.NET 4.0中引入)。