Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
事件模式(.NET示例已请求)_.net_Design Patterns - Fatal编程技术网

事件模式(.NET示例已请求)

事件模式(.NET示例已请求),.net,design-patterns,.net,Design Patterns,如果您能帮助您围绕.NET应用程序构建以下设计,我们将不胜感激 假设我们有不同类型的文章:比如说,新闻文章、博客文章、社论文章等等。它们在某些方面不同,在其他方面相同,因此它们都继承自一个文章基类 我们需要一个好的模块化设计,这样一些文章类型可以打包在单独的模块中,或者开发人员可以构建自己的文章类型 当一篇文章被发布并公开时,必须运行一系列的服务——例如,人们需要通过电子邮件发送,数据库中的字段必须更新,等等 这让我想起了观察者/事件模式,但我不确定如何注册观察者。这篇文章的主题到底是什么?是文

如果您能帮助您围绕.NET应用程序构建以下设计,我们将不胜感激

假设我们有不同类型的文章:比如说,新闻文章、博客文章、社论文章等等。它们在某些方面不同,在其他方面相同,因此它们都继承自一个文章基类

我们需要一个好的模块化设计,这样一些文章类型可以打包在单独的模块中,或者开发人员可以构建自己的文章类型

当一篇文章被发布并公开时,必须运行一系列的服务——例如,人们需要通过电子邮件发送,数据库中的字段必须更新,等等


这让我想起了观察者/事件模式,但我不确定如何注册观察者。这篇文章的主题到底是什么?是文章本身吗?我们应该在哪里注册这些事件-在Global.asax或类似的版本中-这对我来说有点奇怪?我是否走上了正确的轨道-总体顶级体系结构会是什么样子?

如果必须运行服务,那么观察者就是他们自己的服务。

这是,您不需要在Global.asax中注册事件,而是在该DP的主题类中注册观察者类

MSDN上有解释观察者模式以及如何将此模式与.NET中的事件(又称.event模式)一起使用的代码