2015-01-09 51 views
0

鑑於DDD中ValueObjects的性質,它可以被認爲是它們的集合,作爲包含數據庫查詢結果集的容器?作爲數據庫查詢結果的ValueObjects的集合

例如,這種僞代碼可能的ValueObject概念?:

List<ValueObject> resultSet = GetValueObjectsFromDB(); 

List<ValueObject> GetValueObjectsFromDB() 
{ 
    return ExecuteCommand("SELECT * FROM dbo.AnEntity"); 
} 
+0

我認爲服務可以從數據庫返回值對象。諸如查找值等。然而,'dbo.AnEntity'在你的例子中沒什麼意義。 – plalx 2015-01-20 00:07:15

回答

1

的合理使用我想你混淆值對象是領域驅動設計和DTO(數據Transfert對象)的基石之一這是一個愚蠢的數據容器。

值對象:對象沒有概念標識。他們應該被視爲不可變的。價值對象在域模型中發揮作用,並且經常會有與其相關的行爲。

DTO:這只是一個啞數據容器,可用於傳輸線路上或建築圖層之間的數據。

你會在'查詢'一邊使用的是根據你的特定需求定製的DTO。如果你想在屏幕上顯示它或者將這些數據轉移到另一個系統,那麼DTO就是實現它的方法。