我有一個遊戲,它由幾個模塊組成。數據庫模塊摘要(獨立於)來自遊戲的其他模塊
其中之一是數據庫模塊。 我想讓它類似的東西:
Database{
public:
save(&Object); //all my classes in the all modules inherit from Object
load(&Object);
};
什麼是使獨立於其他模塊,該模塊的最佳方式(使用其他模塊將存儲在Database
數據save
和load
功能)?
我考慮幾個解決方案:
- 所有對象都具有類似的東西從
Object
類(類似於Java的)繼承serialize()
方法。Database
使用該方法獲取字符串並將其保存。明顯的缺點是:所有對象都必須實現新的方法,並且它不會最適合保存字符串(不知道類的結構)。 - 爲所有類別製作'清單'(例如,文本文件將發送到
Database
)。該清單將描述類的結構(例如,一個字符串,兩個double,一個罕見的int)。缺點是靈活性 - 更改其他模塊中的類將會影響清單。 - 所有類別都有自己的
save
和load
方法和Database
使用它們。我不想要它,因爲所有類都必須知道數據庫類型,並且save
和load
應該在Database
類中,而不是分佈在整個代碼中(這是製作此類模塊的一個要點)。 Database
瞭解所有其他模塊(並知道如何保存所有對象)。這裏的壞事是很多依賴。任何模塊的更改都會影響Database
。
哪條路好?或者,也許有更好的選擇?
當你談論像你想使用一個名稱值存儲(鼻翼的NoSQL)這聽起來序列化()方法。通常,數據庫會在表中存儲每列一個值。 –