在我的github repo中,我有类的层次结构,当然还有序列化/反序列化机制。
我通过Externalizable手动对它们进行序列化,我希望获取生成值的所有代码,这些类的实例序列化需要保持所有简单和灵活(或者只是为了解决这个问题)
所以我基本上想要做的是创建SerializationHelper
和DeserializationHelper
类,其中特定类的名称将是NameOfClassSerializationHelper
。
在最坏的情况下,这样的名字是29个字符,但我认为这太多了。是的,当然它可以更好地理解发生了什么,名称不到50个字符,用户永远不会看到这个类。
因为您可以看到我将Serialization
缩减为Ser
而Deserialization
缩减为Deser
,但似乎会损害可读性。
例如,实现TrieSerializationHelper
的类将具有名称LinkedTrieSerializationHelper
。
另外还有一个问题:我无法将这些序列化/反序列化帮助器放到另一个包中,因为它们使用了一些包私有类(Node
,正如您从restoreRooot
方法中看到的那样WordGraphDeserHelper
)。
所以我完全混淆了如何更好地完成我必须做的事情。提前谢谢。
答案 0 :(得分:1)
您可能还希望创建类似Externalizer
接口和特定实现(TrieExternalizer
)的内容,并将所有逻辑移到那里,以便您的主要类(我认为它们是Trie
和{{ 1}})不会因序列化/反序列化而过载。
示例:
DAWG