1
我有很多類,比如,設計問題,反序列化
class A
{
/*member variables*/
};
class B .. Class Z
我複製這些類的對象到緩衝區(字符*)。現在我有一個閱讀器對象,它連續輪詢這個緩衝區並將字節反序列化爲對象並打印出來。我的問題是如何設計deserialzer類。
我的方法是將對象的類型作爲頭部嵌入,然後通過緩衝區發送。在讀取緩衝區時,我知道類型,然後我可以反序列化適當的對象。反序列化部分的問題是現在應該知道所有的消息類型,並根據類型調用適當的函數。我打算將這種反序列化作爲一個單獨的實體,它不知道消息類型,或者將它反序列化的代碼不應該成爲它的一部分。
我正在尋找接口,多態等解決方案來解決這個問題。有這種問題的設計模式嗎?
也許這個:http://www.boost.org/doc/libs/1_62_0/libs/serialization/doc/index.html將會對你有用(boost :: serialization);) –
另外看看你是否需要自己做。請查看https://developers.google.com/protocol-buffers/,https://thrift.apache.org/或https://avro.apache.org/。 – PsiX