在幾個示例項目中,我已經看到ViewModels被用來將數據對象轉換爲字符串,以便在View中使用。ViewModels和渲染
ViewModel通常會有一個構造函數接收一個參數 - 一個數據對象。然後構造函數將填充ViewModel的各種屬性(主要是字符串和整數)。
這可以防止在視圖中發生任何複雜的邏輯。乍一看,這對我來說似乎是一個好主意,因爲它更充分地實現了View與複雜邏輯的分離。
例如,假設我的視圖試圖呈現數據對象的屬性'Size',Size是1到3之間的數字,代表'Small/Medium/Large'。
而不是在我的視圖中有一個if/switch語句,我只是在我的ViewModel中有一個'SizeString'或類似的東西,if/switch語句將在ViewModel構造函數中。
有沒有人不同意這種方法?
使用其他方法比如助手會更好嗎?如果是這樣,爲什麼?
很好的解釋。我對此不確定的原因是,我確信我在某處閱讀ViewModel應該是沒有任何邏輯的普通POCO對象。但顯然這是行不通的。應該允許ViewModel包含表示邏輯。 – Jonathan 2010-01-02 10:15:53
POCO不排除邏輯的存在:) – 2010-01-02 10:27:26
想寫關於SRP,但你已經做到了。正如我一直說的那樣 - 很難同時成爲一名拳擊手和芭蕾舞演員。 :) – 2010-01-02 10:36:36