2015-08-15 48 views
0

這是軟件設計中的一個初級問題。 我有這樣良好做法:用於後端目的的未使用屬性

ProductProperty 
---------------- 
+product_property_id:int 
+values:array 
+current_value:string 

在前端場景我使用此類產品,其具有可能的值的屬性的模型類(值是一個字符串數組)和所選擇的值(current_value保持存儲的特定字符串在值中)。

而在後端?我應該使用不同的課程嗎?我的意思是我使用這個類來創建具有屬性的新產品。我像實例化一個new ProductProperty(435, NULL, bla, bar, bah)對象創建和存儲的對象而像

{ 
id:435, 
values:['bla','bar','bah'], 
current_value:NULL 
} 

,從來沒有使用current_value屬性。

要存儲訂單,例如當然我會填充current_value屬性,但不要真正使用values數組。

這樣很好,還是必須爲每個案例創建單獨的類。

+0

它是好的。你爲什麼認爲它不會? – darlinton

+0

也許專業人士會說這太hacky,因爲他使用不同的類,比如擴展類「ProductPropertyChoice」或其他類。不知道。謝謝你的幫助! –

回答

1

好的做法是採用像值對象(VO)或數據傳輸對象(DTO)這樣的模式。這意味着您必須創建另一個類,而且只能使用從一個圖層轉移到另一個圖層的屬性。我發現在比你的例子複雜得多的情況下,它是必需的和有用的。考慮到同一實體的許多類的系統保持工作量往往比使用充滿空的屬性的類高很多,因爲計算能力比編程器小時率便宜。

檢查這篇文章有關的區別:http://www.adam-bien.com/roller/abien/entry/value_object_vs_data_transfer