gpt4 book ai didi

java - 处理多种文件格式的转换,避免耦合

转载 作者:行者123 更新时间:2023-11-30 08:14:59 25 4
gpt4 key购买 nike

我正在开发一个 Java (RCP) 项目,我需要将不同的源文件格式(我们称它们为 SF-1..N)转换为另外两种不同的目标格式(DF-A、DF-B)现在输入文件可以是 CSV、XLSX 和 XML(具有不同的模式)。应用程序应该找到正确的转换器,并且有必要读取文件内容来做到这一点。每个转换器规范化文件的内容并创建 1..N 个 DF 对象实例,这些实例被转换为 DF-A 或 DF-B 记录。

所以我有几个转换器可以获取文件内容并返回 DFs 对象的集合。每个转换器还应该能够判断文件内容是否是它支持的内容。

我能想到的唯一策略是询问每个转换器是否支持该文件的内容,以及它是否不尝试下一个。如果没有合适的转换器,则向用户返回错误。

我也可能会被要求添加对新格式的支持,我希望能够添加更多转换器而无需修改不必要的代码。

我正在考虑在服务定位器对象中注册每个转换器,但我不确定如何以最少的耦合来做到这一点。我考虑过在静态初始化程序中注册到服务定位器,但只有在加载类后才会调用它。

我该怎么做?对于我想要完成的事情,有更好的方法吗?

最佳答案

M0skit0 的回答很好,但考虑到客户端不知道文件的类型,我会让转换器接口(interface)实现 CanConvert 方法。

然后您可以简单地遍历所有转换器,询问是否可以转换文件并使用第一个可以转换的转换器。

这还有一个优点,您可以动态添加新的转换器而无需更改枚举,因此无需重新编译应用程序即可添加它们。

关于java - 处理多种文件格式的转换,避免耦合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29183195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com