我在我的项目中实现观察者模式时遇到问题。该项目必须在 C# 中制作为 MVC,就像 Windows 应用程序一样。
在我的域模型中,我有例如 Country 类和 Country 存储库。我有一个国家控制器和视图,用于查看所有国家(表格上的列表)、添加新国家和编辑现有国家。
我不知道有多少观点必须了解与国家变化相关的变化。问题是我必须使用观察者模式。在网络上,我只能找到主题是国家和观察者是编辑国家的表单并且所有示例都在控制台应用程序中的示例。
我需要所有包含国家/地区列表的表格都知道添加新国家/地区,而不仅仅是编辑现有国家/地区。我应该怎么做,我应该将存储库设为主题吗?
gljivar
问问题
3252 次
3 回答
1
在 C#(或一般的 .NET)中,您可以使用事件和委托,它们是特殊的观察者/监视器/侦听器实现。
我不知道 DDD,但我会添加一个“NewCountryAdded”事件或“CountryListChanged”事件或类似的东西。
于 2009-01-25T11:20:05.610 回答
1
您可以创建一个“ManageCountry”任务,让您编辑/添加国家/地区。此任务可能有一个事件“CountryChanged”,其他视图可以订阅该事件。
当您修改国家/地区或创建新国家/地区时,您会引发事件,订阅者可以对其做出反应。您只需确保您引发的事件使用一些自定义 EventArgs,以便您可以将已修改的 Country 对象传递给事件处理程序。
你用什么来实现 MVC 应用程序?您是否正在使用某种框架?
于 2009-01-25T11:20:44.483 回答
0
嗯,在我看来,您应该将存储库设为主题,以便存储库作为表单的发布者。试试这个,让我们知道它是否成功。
于 2009-01-25T11:10:44.723 回答