我有輕微特有節目與案件非常相似,這 交易(在C#的僞代碼):引用語義在谷歌協議緩衝
class CDataSet
{
int m_nID;
string m_sTag;
float m_fValue;
void PrintData()
{
//Blah Blah
}
};
class CDataItem
{
int m_nID;
string m_sTag;
CDataSet m_refData;
CDataSet m_refParent;
void Print()
{
if(null == m_refData)
{
m_refParent.PrintData();
}
else
{
m_refData.PrintData();
}
}
};
成員m_refData和m_refParent被初始化爲null,作爲如下: m_refData - >添加新數據集時使用 m_refParent - >用於指向現有數據集。 僅當字段m_nID與現有字段不匹配時,纔會添加新的數據集。
目前這段代碼管理着大約500個對象,每個對象大約有21個字段,截至目前爲止,選擇的格式是XML,它在100k +行和5MB +時非常笨拙。
我打算修改整個shebang使用ProtoBuf,但目前我不確定如何處理引用語義。任何想法將不勝感激