2015-10-05 59 views
1

有時我看到一些人用「啞數據」或「啞數據對象」來描述某些東西,但我不清楚「啞數據」的定義。什麼是「啞數據」和「啞數據對象」是什麼意思?

是啞巴數據意味着對象一些成員不使用的對象本身,但對於其他人使用該對象?

例如:

class Process{ 
public: 
    int parentProcessId; 
    //other property 
}; 

int main(){ 
    Process p1; 
    int p1Id=p1.getParentProcessId(); 
    Process p2=Process.getProcessPyId(p1Id); 
    return 0; 
}; 

和是「啞數據對象」是指在對象的所有屬性被用來存儲值僅(例如:對象映射從SQL列)?

+1

「對象中的所有屬性都只用於存儲值」 - 是的。它是一組數據,沒有附加行爲,除了簡單的訪問器。也可能是一個'struct'。 – Amadan

+0

參見:[?什麼是POD類型在C++](https://stackoverflow.com/questions/146452/what-are-pod-types-in-c)啞數據對象是POD對象,儘管術語不是完全同義詞,因爲除了對象之外,還有其他POD。 – Boann

回答

0

正如註釋的「啞數據對象」提的是不含有行爲,只有數據的對象。通常也被稱爲Data tranasfer objects (DTO)

他們沒有方法或構造函數。

這些對象可以被序列化,然後在不同語言之間反序列化和保持相同的信息。如果它們包含行爲,則需要在對象的兩種語言表示中創建此行爲,因爲行爲不能被序列化,因此需要數據。