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