1

我在我的项目中实现Observer模式时遇到问题。 该项目必须在C#中作为MVC制作,就像Windows应用程序一样。
在我的域模型中,我有例如Country class和Country repository。我有一个国家控制员和观看所有国家(表格上的列表),添加新国家和编辑现有国家的意见。
我不知道有多少视图必须知道与更改国家有关的更改。事情是我必须使用Observer模式。而在网上,当主题是国家和观察者是编辑国家的一种形式,并且所有示例都在控制台应用程序中时,我只能找到检查。

我需要我所有的表格都有国家列表了解有关添加新国家,而不仅仅是编辑现有国家。我应该如何做到这一点,我应该做一个存储库的主题?MVC和观察者模式

回答

1

你可以创建一个'ManageCountry'任务,它可以让你编辑/添加国家。 此任务可能有一个事件'CountryChanged',其他视图可以订阅。

当您修改一个国家或创建一个新国家时,您引发了该事件,并且订阅者可以对此作出反应。 您只需确保您提出的事件使用了一些自定义EventArgs,以便您可以将已修改的Country对象传递给事件处理程序。

你用什么来实现一个MVC应用程序?你在使用某种框架吗?

0

嗯,对我来说,这听起来应该让一个存储库成为一个主题,这样该存储库就可以作为发布者来使用这些表单。试试这个,让我们知道它是否成功。

1

在C#(或.NET通常)中,您可以使用特殊的观察者/监视器/侦听器实现的事件和委托。

我不知道DDD,但我会添加一个“NewCountryAdded”事件或“CountryListChanged”事件或类似的东西。

+0

你会添加那个事件到哪个对象?存储库? – gljivar 2009-01-25 13:02:58

+0

我猜,对于存储库。很难说,不知道你的完整的班级结构和用法... – EricSchaefer 2009-01-26 11:17:51