Bar*_*rth 4 parsing file-format legacy-code
深入研究需要扩展的遗留项目(C++),我意识到大约有40个读/写/解析器类.它们用于以不同的文件格式(二进制,hdf5,xml,文本......)读写各种类型的数据(不同的对象); 一种类型的对象通常绑定到一种或两种文件格式.这些课程对大多数人来说都不了解其他课程.接口和继承显然是作者所不知道的,以及设计模式.
在我看来,这是一个可怕的混乱.另一方面,我不确定如何处理这种情况.我至少会提取接口.我还想看看我是否可以在某些父类中使用公共代码,例如hdf5读取器/写入器的特定代码.我还认为抽象的工厂模式可以提供帮助,但是我从读者那里得到的对象是完全不同的.
你会如何处理这种情况?你会如何设计课程?你会使用什么设计模式?你会把阅读和写作部分分开吗?
抽象工厂模式不是正确的轨道.如果您预期给定文件类型的多个实现并且希望两者以相同的方式操作,则通常只需要接口.
问题:可以将一个类写入多个文件类型吗?同样,对象'a'(类A的类型)可能需要写入XML或文本格式?
如果这是真的,您需要将类与读者/作者分离.看看这个问题:我应该使用哪种设计模式进行导入/导出?