【发布时间】:2016-02-28 22:38:45
【问题描述】:
过去,我尝试过两次实现多格式转换器。一个是 Markup 转换器,应该能够转换 GitHub、StackOverflow、MoinMoin、MediaWiki 等。另一个是相册转换器,目前可以将 iflor 转换为 scribus,但应该支持至少两种以上的相册格式和 pdf。
问题总是一样的:不同的格式有不同的特性。例如:MediaWiki 和 MoinMoin 对宏的理解不同,而其他大多数标记语言不支持宏。或者 iflor 有一些边框格式很难在 scribus 中实现并且看起来不太好。
我不喜欢为每种可能的组合实现直接转换器的想法(对于 4 种格式,这是 12 个具有大量冗余的转换器)。我从一个“超集数据结构”开始,它包含所有格式的所有功能,作为给定格式的导入和导出过滤器之间的链接,但我想知道是否有最佳实践方法来做这样的事情或类似的事情有助于了解的设计模式,例如导入和导出直接通信而没有“超级格式”的架构?
嗯,这两个项目目前由于缺乏时间(和需求)而暂停,但我愿意学习下一次如何做得更好。相册为我的个人书完成了它的工作,并且可能很快会继续。它的代码在GitHub。
【问题讨论】:
标签: design-patterns file-conversion