我想在我的网络应用程序中创建一个“模块”布局,以便我可以轻松添加更多相同类型的模块,例如:
举个例子,我的 WebApp 处理订阅和电子邮件事件,我想创建一个界面以允许轻松耦合多个 API、MailChimp、CampaignMonitor、iContact 等...
所以我将创建一个 IMailingService
接口(interface),在其中设置基本规则,所有模块都将像这样实现它
public class CampaignMonitorService : IMailingService
到目前为止一切顺利...
在我的网络应用程序上执行操作时触发接口(interface)方法怎么样?
我应该实现观察者设计模式,我应该简单地创建事件处理程序,还是任何其他 Hook ?
例如,在用户订阅后,我想在界面
上触发AddSubscriber
方法
AddSubscriber(string email, string[] args);
诸如创建列表、取消订阅等之类的事情......
处理这种情况的最佳方法是什么?
最佳答案
事件处理程序是观察者模式在 .NET 中通常实现的方式。该模式是 .NET 世界的一等公民,非常类似于迭代器模式的内置方式(使用 foreach
和 yield return
)。
如果您确实想使用没有事件/事件处理程序的模式,则可以使用新的 IObserver<T>
和 IObservable<T>
(在 .NET 4.0 中引入)。
关于c# - 观察者模式还是只是创建事件处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889051/