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