2013-01-18 30 views
0

我通常將VO的引用保留在相關的View中。在相關視圖中保留Vo引用,有助於直接分配更改。我懷疑是否在視圖中保留了Vo引用,是正確的,按照MVC的原則(我使用robotlegs)。因爲按照mvc,模型應該通過視圖介體傳達視圖。 Vos與模型有關。模型應該通過ViewMediator進行交流觀察。 Vo Vo(模型的一部分)直接溝通

那麼什麼是正確的方法。當View發生變化時,VOs應該如何更新?

回答

1

如果您必須採用MVC的文字方法,ValueObjects應該是不可變的 - 值在分配後不會改變。如果您將VO視爲數據的可變部分,那麼它應該在模型中。但是,如果您將它們用作值的引用,則可能需要將它們保留在應用程序範圍內可用的位置。如果這需要視圖,那麼你把它放在那裏。

基本上,看看你是如何使用它們,以及它如何適用於你正在做的事情,並解決一個適合你的單一方法。只要你是一致的,它是否符合'規則'並不重要。另外,就我而言,無論如何他們只是指導。

+0

amm ..我無法理解這一點。 「ValueObjects應該是不可變的」。那麼他們將如何代表「觀點」的變化價值。比方說,我有一個有100個值的列表框。 selectedIndex爲5.「Vo」保存selectedIndex。當在列表框中選擇一個新項目時,它必須相應地改變Vo中的相應變量。對? –

+0

在這種情況下,它可能很容易成爲模型屬性 - selectedIndex。 VOs更像貨幣匯率或日期範圍 - 查看http://en.wikipedia.org/wiki/Value_object但是在C#示例中,他們提到C#VO是可變的 - 就像我之前說過的那樣,使用這一切作爲指導,不要把它作爲實現你的應用程序的唯一方法。堅持一件事,並用它來達到最佳效果。如果你需要VO是可變的 - 使它可變。 – Gone3d